如果有JavaScript对象:
var objects={...};
假设,它有超过50个属性,不知道属性名称(即不知道“键”)如何在循环中获得每个属性值?
如果有JavaScript对象:
var objects={...};
假设,它有超过50个属性,不知道属性名称(即不知道“键”)如何在循环中获得每个属性值?
当前回答
const myObj = {a:1, b:2, c:3}
获取所有值:
最短的方法: const myValues = Object.values(myObj) const myValues = Object.keys(myObj)。map(key => myObj[key])
其他回答
如果你真的想要一个值数组,我发现这比用for…在循环。
ECMA 5.1 +
function values(o) { return Object.keys(o).map(function(k){return o[k]}) }
值得注意的是,在大多数情况下,你并不需要一个值数组,这样做会更快:
for(var k in o) something(o[k]);
这将遍历对象o的键值。在每次迭代中,k被设置为o的键值。
我们可以使用以下三种方法获取数据
使用地图功能
data.map( item => { console.log(item) }
使用for循环
for( let i = 0; i < data.length; i++){
console.log(item);
}
使用for in循环
for(key in data) {
if(data.hasOwnProperty(key)) {
const value = data[key];
console.log(value);
}
}
如果你可以访问Underscore.js,你可以使用_. js。价值观的作用是这样的:
_.values({one : 1, two : 2, three : 3}); // return [1, 2, 3]
通过使用简单的for..in循环:
for(var key in objects) {
var value = objects[key];
}
我知道我来晚了一点,但这是新firefox 47 Object的垫片。值方法
Object.prototype.values = Object.prototype.values || function(obj) {
return this.keys(obj).map(function(key){
return obj[key];
});
};