迭代javascript哈希数组的最佳方式

Best way to iterate array of hashes javascript

本文关键字:最佳 方式 数组 javascript 哈希 迭代      更新时间:2023-09-26

如果我有一个哈希数组,迭代的最佳方式是什么?

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,最好的方法是什么?

感谢

类似这样的东西:

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);
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

它将遍历您的数组,对于每个对象,遍历其键,并将键和值推送到单独的数组中。

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
});