0
什麼計算操作更快?「(key in obj)」還是「.forEach」更快?
Object.keys(obj).forEach(function (key) {
// do something with obj[key]
});
或
for(key in obj){
// The key is key
// The value is obj[key]
}
什麼計算操作更快?「(key in obj)」還是「.forEach」更快?
Object.keys(obj).forEach(function (key) {
// do something with obj[key]
});
或
for(key in obj){
// The key is key
// The value is obj[key]
}
的主要區別是基於什麼是你正在工作的陣列結構。 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函數將「遍歷所有」。所以,正如我所提到的,這取決於可迭代的結構。
有上jsperf是現有的測試案例此。
http://jsperf.com/ - 找出:D – tymeJV
http://jsperf.com/diy-1234'for..in',顯然。不涉及函數調用。 –
這兩者並不相同,但顯然首先是做更多的工作。爲什麼?你的代碼中有性能問題嗎? –