7

したがって、インデックスが 0 の場合は、次のように出力します。

a = [ 1, 2, 3 ] 

for i of a
    if i == 0
        console.log a[i]

しかし、出力はありません。

i == 0決して真実ではありません...

4

3 に答える 3

12

インデックスを文字列として返します。それらを整数として解析すると機能します

a = [ 1, 2, 3 ] 

for i of a
    if parseInt(i) == 0
        console.log a[i]
于 2012-10-14T13:46:16.920 に答える
2

これは、インデックス番号ではなく、iの項目をループするときに1、2、または3になるためです。a

これは、上記のように機能します。

a = [ 1, 2, 3 ] 

for i in [0..a.length]
    if i == 0
        console.log a[i]
于 2012-10-14T13:44:37.517 に答える
1

ofを使用して配列をループするべきではありません。使用する必要がありますin細かいマニュアルから:

内包表記を使用して、オブジェクト内のキーと値を反復処理することもできます。of配列内の値ではなく、オブジェクトのプロパティに対する理解を示すために使用します。

yearsOld = max: 10, ida: 9, tim: 11

ages = for child, age of yearsOld
  "#{child} is #{age}"

したがって、インデックスではなく、配列オブジェクトのプロパティを反復処理しようとしています。

ループには次のいずれかを使用する必要があります。

for e, i in a
    if(i == 0)
        console.log(a[i])

for e, i in a 
    console.log(e) if(i == 0)

console.log(e) for e, i in a when i == 0

#...

または、配列と数値インデックスがあるので、ループをスキップして要点を直視しないでください:

console.log(a[0])
于 2012-10-14T16:43:16.427 に答える