我阅读了Javascript The Good Parts,并了解到使用for (i in blah) {}
是一种不好的符号,但问题是,我正在使用Node.js
和我正在使用的数据库MongoDB
将所有查询返回为objects
,这很好。现在我有一个ajax查询从表中提取所有信息,我想用每个值做事情。
但是数据库返回的是一个包含对象的数组(随机大小取决于数据库中的数据),为清楚起见,我将举例说明:
[
{
'a': 'value of a',
'b': 'value of b',
'c': 'value of c'
},
{
'a': 'value of a',
'b': 'value of b',
'c': 'value of c'
}
]
我如何遍历每个事物,以便我可以从每个事件中分配变量,这就是我所做的工作:
for (var i = 0; i < data.success.length; i += 1) {
for(x in data.success[i]) {
console.log(x);
}
}
我只是担心糟糕的符号最终会咬我,我读到(blah in blah)
符号并不总是按顺序返回结果。这是有必要的。希望我明白了,谢谢。
我需要获取值,而不是对象中变量的名称。
答案 0 :(得分:4)
Object.keys(data.success[i])
将为您提供对象中存在的所有键,然后您可以.sort
保证排序顺序。
data.success.forEach(function(item, n) {
console.log('item ' + n);
Object.keys(item).sort().forEach(function(key) {
console.log(key + ':' + item[key]);
});
});