mit*_*221 2 javascript arrays indexof
我见过很多次这样的事情:
function customArrayIndexOf(item, array){
for (var i = 0, l = array.length; i < l; i++) {
if (i in array && array[i] === item) return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定为什么i in array
需要.
我有三个问题:
稀疏数组可能会在没有检查的情况下导致误报:
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
Run Code Online (Sandbox Code Playgroud)
(i
并且l
应该是本地的,即声明的var
)