MDNおよびその他のさまざまなソースによれば、for...in
は列挙可能なプロパティのみを繰り返し処理します。列挙可能なものは、propertyIsEnumerable()
に対してfalse
を返すものと仮定します。... for配列のinの配列は、無制限のプロパティを繰り返し処理します
In false function each()
In false function eachSlice()
In false function all()
In false function any()
私はfor...in
が配列のために助言されていないことを知っていると私はすでにその配列は、プロトタイプによって拡張された疑いがある:thisページ
var TstArr = [0];
for (var A in TstArr) {
\t console.log("In",TstArr.propertyIsEnumerable(A),TstArr[A]);
};
ログこの上それでも、次のコードそれは私の質問ではありません。私の疑問は、それがどうしようもないはずのものを列挙する理由です。 これはFF & Chromeの場合と同じです。
あなたはprototype.jsのライブラリを使用している場合、あなたはそれをタグ付けする必要があります質問。組み込みメソッドが列挙できない* Array.prototype *が拡張されています。私の場合、結果は「真の0」です。 – RobG
@RobG Prototypeはそのページで使用されていますが、私が質問した部分では使用していませんでした。 Prototypeの方法が私の推測でした。 – ZeroUnderscoreOu
確かに、それはなぜ方法が現れていたのかを説明します。コードスニペットを実行しても、取得した結果は得られません。期待通りの結果を返します。 Prototype.jsがそのページに含まれていることに注意してください。 – RobG