2
我见过很多次这样的事情:为什么我应该在我自己定制的'array.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;
}
但是,我不知道为什么需要i in array
。
我有三个问题:
- 它是做什么?
- 有必要吗?
- 什么时候没有它会失败?
不是'T [0] == undefined'? – mithril333221 2012-02-19 06:21:04
@ mithril333221,不,不是,自己尝试一下;本地实现'var t = []; t [1] = 1; t.indexOf(undefined);'returns'-1'。虽然't [0] ===未定义'并不意味着数组中存在未定义的条目,这只是表示本机查找函数返回了该值。 – davin 2012-02-19 06:23:33
@davin okey,我会接受你的答案。只是最后一件事,它为什么是'-1'?,编辑:你的编辑回答了这个问题,所以我想不需要进一步的练习 – mithril333221 2012-02-19 06:24:33