2012-02-19 39 views

回答

6

稀疏陣列可能造成假陽性,而不檢查:

var customArrayIndexOf = function(item, array){ 
    for (var i = 0, l = array.length; i < l; i++) { 
     if (i in array && array[i] === item) return i; 
    } 
    return -1; 
}, 
customArrayIndexOfNoCheck = function(item, array){ 
    for (var i = 0, l = array.length; i < l; i++) { 
     if (array[i] === item) return i; 
    } 
    return -1; 
}; 

var t=[]; t[1]=1; 

customArrayIndexOfNoCheck(undefined, t); // 0 
customArrayIndexOf(undefined, t); // -1 

il應該是局部的,即具有var聲明)

+0

不是'T [0] == undefined'? – mithril333221 2012-02-19 06:21:04

+0

@ mithril333221,不,不是,自己嘗試一下;本地實現'var t = []; t [1] = 1; t.indexOf(undefined);'returns'-1'。雖然't [0] ===未定義'並不意味着數組中存在未定義的條目,這只是表示本機查找函數返回了該值。 – davin 2012-02-19 06:23:33

+0

@davin okey,我會接受你的答案。只是最後一件事,它爲什麼是'-1'?,編輯:你的編輯回答了這個問題,所以我想不需要進一步的練習 – mithril333221 2012-02-19 06:24:33

相關問題