什么计算操作更快?
Object.keys(obj).forEach(function (key) {
// do something with obj[key]
});
或
for(key in obj){
// The key is key
// The value is obj[key]
}
答案 0 :(得分:0)
jsperf上有一个现有的测试用例。
答案 1 :(得分:0)
主要区别在于您正在处理的Array结构。 for(key in obj)遍历对象的可枚举属性,对Sparse Arrays特别有用。
例如,
var keyInArr;
var arr = [];
arr[0] = "val1";
arr[10] = "val2";
arr[100] = "val3";
for (keyInArr in arr) {
}
对于上面的数组,我们只迭代3次,而不是101次。
相反,forEach功能将全部循环播放这些功能'。所以,正如我所提到的,它取决于可迭代的结构。