Array.prototype.sort
如何處理數組中的未定義值?帶有未定義值的javascript array.sort
var array = [1,undefined,2,undefined,3,undefined,4];
var array2 = [];
array2[0] = 1;array2[2] = 2;array2[4] = 3;array2[6] = 4;
當調用array.sort(function(l,r) { ... });
值undefined
從來沒有傳過來l
或r
。
我可以保證所有未定義的值將始終保留在所有瀏覽器的數組末尾嗎?
請問下面的循環處理數組中的
array.sort();
for (var i = 0; array[i] !== undefined; i++) {
// handle array
}
你可以假設,沒有人宣稱undefined
爲變量的所有非undefined
數據。
在IE <= 8時只刪除
undefined
屬性,他們會從完全陣列被移除。請參閱:https://github.com/documentcloud/underscore/issues/484#issuecomment-4055242 – Gijs 2012-03-23 11:16:21