如何不依赖键名获取JavaScript对象首个键的首个数组值?
解决方案:不依赖键名获取对象首个键对应数组的第一个元素
当然可行!完全不用为上百种可能的键名写重复代码,这里有几个简洁高效的方法,帮你轻松搞定这个需求:
方法1:通过Object.keys()获取首个键名
先获取对象的所有键名数组,取第一个键名后再访问对应的数组元素:
var x = {"email":["This Position"]}; // 拿到第一个键名 const firstKey = Object.keys(x)[0]; // 提取目标元素 const targetValue = x[firstKey][0]; console.log(targetValue); // 输出: "This Position"
方法2:直接用Object.values()取值(更简洁)
既然我们只关心值,完全可以跳过键名这一步,直接获取所有值的数组,取第一个值(也就是目标数组)后再拿第一个元素:
var x = {"phone":["This Position"]}; const targetValue = Object.values(x)[0][0]; console.log(targetValue); // 输出: "This Position"
方法3:解构赋值一步到位
如果喜欢更简洁的写法,可以用解构赋值直接提取目标元素:
var x = {"name":["This Position"]}; // 先解构出第一个值数组,再解构出数组的第一个元素 const [[targetValue]] = Object.values(x); console.log(targetValue); // 输出: "This Position"
额外提示:处理空对象的情况
如果服务器可能返回空对象,建议加个简单的判断避免报错:
var x = {}; const values = Object.values(x); // 有值就取目标元素,没有就设默认值或处理逻辑 const targetValue = values.length ? values[0][0] : '暂无数据'; console.log(targetValue); // 输出: "暂无数据"
内容的提问来源于stack exchange,提问作者dudd
相关产品推荐
相关产品推荐

