Heilman
@Heilman

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

JSの"for of"と"for each"構文の違いについて

JavaScriptを勉強していますが、
今ひとつ"for of"と"for each"構文を勉強しています。
しかし、それぞれ、どういう時に使うのか、どういう時に使うと役に立つのかが分かりません。
それぞれ、簡単なコードを書きます。

let nums = [10, 7, 72, 35];
for(let n of nums){
console.log(n);
}
→ 10, 7, 72, 35 が出力

let nums = [25, 16, 30, 89, 2, 48];

nums.forEach((n) => {
console.log(n);
});
→ 25, 16, 30, 89, 2, 48 が出力

for ofまた、forEach構文の具体的な違いや
使い道に違い(特に、こんな時に使うと便利)、というものがあれば、
どなたか教えていただけますか?

また、上の例を使ってですが、
let nums内にある特定の数字のみを取り出す方法などはないでしょうか?
今のままでは全部取り出してしまうので、
例えば、0番目の数字を取り出す書き方など、何かないでしょうか?

アドバイスをお願いします。

0

3Answer

for...offorEach() メソッドは JavaScript で配列や他のイテラブルオブジェクトを操作する際によく使用される2つの異なる方法です。これらは似ていますが、使い方や機能にいくつかの重要な違いがあります。

for...of の使い方と特徴

  • for...of は ES6で導入された構文です。
  • 配列だけでなく、Map、Set などのイテラブルオブジェクトに対しても使用できます。
  • for...of はブレークポイントでループを停止させることができるため、デバッグに便利です。
  • breakcontinuereturn を使用してループの実行をコントロールすることが可能です。
let nums = [10, 7, 72, 35];
for (let n of nums) {
    console.log(n); // 10, 7, 72, 35 が出力
}

forEach() メソッドの使い方と特徴

  • forEach() は Array オブジェクトに対して定義されたメソッドです。
  • 各要素に対してコールバック関数を実行しますが、breakcontinue は使えません。
  • 非同期処理(例えば、配列の各要素に対する非同期API呼び出し)と組み合わせる際には注意が必要です。非同期処理の完了を待たずに次の反復に移行します。
let nums = [25, 16, 30, 89, 2, 48];
nums.forEach((n) => {
    console.log(n); // 25, 16, 30, 89, 2, 48 が出力
});
1Like

例えば、0番目の数字を取り出す書き方など、何かないでしょうか?

単なる配列なので、添え字で指定するだけです。

let nums = [25, 16, 30, 89, 2, 48];
let n3 = nums[3];
console.log(n3); // 89

ご参考まで

0Like

Your answer might help someone💌