2012-02-19 38 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

相关问题