2
私はこのようなことを何度も見てきました:自分のカスタム 'array.indexOf'の中で 'i in array'を使用するのはなぜですか?
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
が必要とされているかわかりません。それは何をしているのです
- :
は私の3つの質問がありますか?
- 必要ですか?
- それがなくても失敗するのはいつですか?
'Tはない[0] ==定義されていない? – mithril333221
@ mithril333221、そうではありません、自分で試してみてください。 var t = []; t [1] = 1; t.indexOf(未定義);は '-1'を返します。 't [0] === undefined'は、配列に未定義のエントリがあることを意味するわけではありませんが、ネイティブルックアップ関数がその値を返したことを意味します。 – davin
@ダビン私はあなたの答えを受け入れます。ただ最後のもの、なぜそれが '-1'ですか?、edit:あなたの編集はこれに答えました。それで、さらなるコメントの必要はないと思います – mithril333221