Javascript配列の「文字列」索引とfor...inとfor...ofの違い
1152 ワード
TL;DR:jsの配列には「文字列」インデックスがありません.
いくつかの例がありますが、MDNの文書が見つかったので、少し外します.
以下はMDNDiference between
The
for inサイクルは、オブジェクトの上のすべてのenumerable属性を巡回します.
The
for of文法は対象です.
すべてのオブジェクトではなく、集合します.定義を巡回します.
The follwing example shows the difference between a
MDNの例は以下の通りである.
array['b'] = someValue
のように、arrayオブジェクトに属性を追加しただけです.いくつかの例がありますが、MDNの文書が見つかったので、少し外します.
以下はMDNDiference between
for...of
and for...in
から抜粋します.The
for...in
loop will iterate over all enumerable properties of an object.for inサイクルは、オブジェクトの上のすべてのenumerable属性を巡回します.
The
for...of
syntax is specific to collection、rather than all object.It will iterate in this manner over the elemens of any collection a [Symbol.iterator]
property.for of文法は対象です.
すべてのオブジェクトではなく、集合します.定義を巡回します.
[Symbol.iterator]
属性のセットのすべての要素.The follwing example shows the difference between a
for...of
loop and a for...in
loop.MDNの例は以下の通りである.
Object.prototype.objCustom = function() {};
Array.prototype.arrCustom = function() {};
let iterable = [3, 5, 7];
iterable.foo = 'hello';
for (let i in iterable) {
console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}
for (let i of iterable) {
console.log(i); // logs 3, 5, 7
}