如果我有一系列哈希值,那么迭代的最佳方法是什么?
var a = [{"a": "1"}, {"b": "2"}, {"c": "3"}]
for(var i in a) {
console.log(a[i]) //prints each hash
console.log(i) //prints the index
}
如果我想获得a,b,c或1,2,3最好的方式?
由于
答案 0 :(得分:5)
这样的事情:
var a = [{
"a": "1"
}, {
"b": "2"
}, {
"c": "3"
}]
var keys = [];
var values = [];
for (var i = 0; i < a.length; i++) {
for (var key in a[i]) {
if (a[i].hasOwnProperty(key)) {
keys.push(key);
values.push(a[i][key]);
}
}
}
console.log(keys);
console.log(values);
&#13;
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
&#13;
它将遍历您的数组并为每个对象迭代它的键并将键和值推送到单独的数组中。
答案 1 :(得分:2)
ECMAScript 6中提出了for-of循环。
for (obj of a){
var keys = Object.keys(obj) // if you don't know the keys
var value = obj[keys[0]] //in case your object has only one key
}
此功能出现在Firefox 31中,随Chrome 38一起提供.IE不实现它。不了解其他浏览器。
可替换地,
a.forEach(function(obj){
var keys = Object.keys(obj) // if you don't know the keys
var value = obj[keys[0]] //in case your object has only one key
});