如何获取数组中键名动态变化的唯一对象的值
无需固定键名获取对象唯一值的方法
没问题,这种场景我经常碰到,当对象只有唯一的键值对但键名动态变化时,有几个简单直接的方法可以拿到对应的值:
方法1:使用Object.values()(最推荐)
这是ES6+提供的最简洁的方法,它会直接返回对象所有值组成的数组,因为你的对象只有一个值,取数组的第一个元素就行:
var firsts = response.data; var value = Object.values(firsts)[0]; // 这里就拿到1.603476了 console.log(value);
方法2:使用Object.keys()先获取键名再取值
如果你需要同时拿到键名和值,或者要兼容一些老环境(不过现在大部分环境都支持ES6了),可以先拿到键名数组,再通过键名取值:
var firsts = response.data; var key = Object.keys(firsts)[0]; // 拿到动态的键名,比如"EUR_BND" var value = firsts[key]; console.log(value);
方法3:使用for...in循环
因为对象只有一个键,循环一次就能拿到值,这种方法兼容性最好,甚至能支持非常老的JS环境:
var firsts = response.data; var value; for (var key in firsts) { if (firsts.hasOwnProperty(key)) { // 确保是对象自身的属性,避免原型链上的属性干扰 value = firsts[key]; break; // 拿到就退出循环,因为只有一个键 } } console.log(value);
这几种方法都能完美解决你的问题,其中Object.values()是最简洁直观的,优先推荐使用~
内容的提问来源于stack exchange,提问作者Clore Nora
相关产品推荐
相关产品推荐

