メインコンテンツにスキップ
モジュール 5 · レッスン 2 / 4コース内の 18/32~10 min
モジュールのレッスン (2/4)

…の、そして…の為に

JavaScript には 2 つの「人間工学に基づいた」ループがあり、混同しないでください。

  • for…of は、反復可能なコレクション (配列、文字列、セット、マップなど) の 値 を反復します。
  • for…in は、オブジェクトの列挙可能な キーを繰り返します。

これらは近い親戚であり、簡単に交換できます。間違った言語を使用することは、この言語で初めて起こることの 1 つです。 罠。

for…of 配列および文字列の場合

JS
const colori = ['rosso', 'verde', 'blu'];
for (const c of colori) {
  console.log(c); // 'rosso', 'verde', 'blu'
}

for (const ch of 'abc') {
  console.log(ch); // 'a', 'b', 'c'
}

インデックスは提供されません。インデックスも必要な場合は、entries() を使用します。

JS
for (const [i, c] of colori.entries()) {
  console.log(i, c); // 0 rosso, 1 verde, 2 blu
}

オブジェクトの場合は for…in

JS
const utente = { nome: 'Anna', eta: 30, citta: 'Roma' };
for (const chiave in utente) {
  console.log(chiave, utente[chiave]); // 'nome' 'Anna', ...
}

混同してはいけない場合

JS
const colori = ['rosso', 'verde', 'blu'];

// SBAGLIATO: stampa gli indici come stringhe!
for (const x in colori) {
  console.log(x); // '0', '1', '2'
}

// GIUSTO
for (const x of colori) {
  console.log(x); // 'rosso', 'verde', 'blu'
}

試してみてください

運動#js.m5.l2.e1
試行回数: 0読み込み中…

文字列のリストを指定すると、すべての文字列がスペースで区切られて連結された文字列を返す `concat(words)` を定義します。 …の用途に使用します。

エディターを読み込み中…
ヒントを表示

文字列に蓄積します。最初の単語ではない場合にのみスペースを追加します。

3 回の試行後に解決策が利用可能になります

復習演習

運動#js.m5.l2.e2
試行回数: 0読み込み中…

数値 > 0 であるオブジェクトの値を含む配列を返す `positiveValues(obj)` を定義します。for…in を使用します。順序はキーの反復順序と一致する必要があります。

エディターを読み込み中…
ヒントを表示

キーに対して for...in を使用してループし、typeof および > 0 でフィルターし、結果をプッシュします。

3 回の試行後に解決策が利用可能になります