如果有JavaScript对象:
var objects={...};
假设,它有超过50个属性,不知道属性名称(即不知道“键”)如何在循环中获得每个属性值?
如果有JavaScript对象:
var objects={...};
假设,它有超过50个属性,不知道属性名称(即不知道“键”)如何在循环中获得每个属性值?
当前回答
我认为最简单的选择是这样的:
Object.keys(data).forEach(function (key, index) {
var value = data[key];
console.log(key, index, value);
});
例如,这里添加了一个可运行的代码:
Const user = { 名称:“亚历克斯”, 年龄:30岁 }; 种(用户)。forEach(函数(键,索引){ Var值= user[key]; Console.log(键,索引,值); });
其他回答
var objects={...}; this.getAllvalues = function () {
var vls = [];
for (var key in objects) {
vls.push(objects[key]);
}
return vls;
}
ECMA2017开始:
Object.values(obj)将以数组的形式获取所有属性值。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Object/values
在ECMAScript5中使用
keys = Object.keys(object);
否则,如果您的浏览器不支持它,请使用众所周知的for. in循环
for (key in object) {
// your code here
}
你可以循环遍历键:
foo = {one:1, two:2, three:3};
for (key in foo){
console.log("foo["+ key +"]="+ foo[key]);
}
将输出:
foo[one]=1
foo[two]=2
foo[three]=3
我知道我来晚了一点,但这是新firefox 47 Object的垫片。值方法
Object.prototype.values = Object.prototype.values || function(obj) {
return this.keys(obj).map(function(key){
return obj[key];
});
};