JS における for、for...in、for...of、forEach の違いと使用例

JS における for、for...in、for...of、forEach の違いと使用例

forループ

基本的な構文形式:

for(変数の初期化; 条件式; 演算式){

ループ本体ステートメント。
}

通常の for ループは、配列とオブジェクトの両方で使用できます。 for ループでは、 return や break などを使用してループを中断できます。

//配列を走査する var arr = [1,2,3,4,5];
        for(var i=0;i<arr.length;i++){
            コンソールにログ出力します。
        }
//オブジェクトをトラバースする var obj={
            x0:10,
            x1:20,
            2:30 より
        }
        (var k=0;k<3;k++){
            コンソールにログ出力します。
        }

オブジェクトをトラバースする場合、属性の名前付けと k の値には明らかに大きな制限があります。

forEachループ

基本的な構文形式:

arr.forEach(関数(k){
コンソールログ(k);
})

配列から要素を1つずつ取り出してkに格納し、kを関数のパラメータとして渡します。

.forEach() は、配列の要素を反復処理できる Array プロトタイプのメソッドです。.forEach() はオブジェクトを反復処理できません。 forEach メソッドでは、break ステートメントを使用してループから抜け出すことも、return を使用して関数本体から戻ることもできません。

//配列を走査する var arr = [3,2,3,9,5];
         arr.forEach(関数(値,arr){
            console.log(値);
         })

for…in ループ

基本的な構文形式:

for(配列名またはコレクション名のvar変数)
{
配列名 [変数]
}

変数に格納されている配列またはコレクションのインデックス。

 //配列を走査する var arr = [1,2,3,4,5];
        for(変数 i in arr){
            コンソールにログ出力します。
        }
//オブジェクトをトラバースする var obj={
            x0:10,
            x1:20,
            2:30 より
        }
        for(var k in obj){
            コンソールにログ出力します。
        }

1. 添え字の値は文字列型である可能性がある

2. ループは配列要素を走査するだけでなく、追加されたその他のカスタム属性も走査します。たとえば、obj にカスタム属性 obj.name が含まれている場合、この名前属性もこのループに表示されます。

3. 場合によっては、上記のコードは配列をランダムな順序でループします。

for-in ループが最初に設計されたとき、キーとして文字列値を持つオブジェクトに使用されていました。配列ではなく。

for…of ループ

基本的な構文形式:

for(配列名またはコレクション名のvar変数)
{
console.log(変数);
}

変数は配列またはコレクション内の要素を格納します。

 //配列を走査する var arr = [3,2,3,9,5];
         for(var arrの値){
            console.log(値);
         }
//オブジェクトをトラバースする var obj={
            x0:10,
            x1:20,
            2:30 より
        }
        for(var k of Object.entries(obj)){
            コンソールログ(k);
        }

entry() メソッドは、配列のキーと値のペアを含む配列反復子オブジェクトを返します。

反復オブジェクト内の配列のインデックス値がキーとして使用され、配列要素が値として使用されます。

1. for-inループの落とし穴をすべて回避できる

2. forEach()とは異なり、break、continue、returnを使用できる。

3. for-of ループは配列の走査以上のものをサポートします。同じことが多くの配列のようなオブジェクトにも当てはまります。

4. 文字列の走査もサポートしています

5. for-ofは元のネイティブオブジェクトの処理には適していない

要約する

1. 'for...in' は、継承された列挙可能なプロパティを含む、オブジェクトのすべての '列挙可能な' プロパティを反復処理するために使用されます。この反復ステートメントは、配列文字列または通常のオブジェクトに使用できますが、Map オブジェクトまたは Set オブジェクトには使用できません。

2. 「for...of」は「反復可能」なオブジェクトに使用され、プロパティではなく値を反復処理します。この反復ステートメントは、配列、文​​字列、Map、または Set オブジェクトで使用できますが、通常のオブジェクトでは使用できません。

JS における for、for...in、for...of、forEach の違いと使用法についての記事はこれで終わりです。JS における for、for...in、for...of、forEach の違いについての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JS forEach と map メソッドの使用法と相違点の分析
  • js における forEach と for の違い

<<:  ビジュアルデザインとインタラクションデザインについて

>>:  CSS で垂直方向の中央揃えを行う 7 つの方法の詳細なコード例

推薦する

JS ES6 変数分割代入の詳細な説明

目次1. 脱構築とは何か? 2. 配列の分割3. 配列モードと代入モードの統一4. デフォルト値の構...

Linux でのソース パッケージ インストールのサービス管理

目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...

JSタイマーを使用して要素を移動する

JS タイマーを使用して、要素に移動する効果のあるメソッドを作成します。実装のアイデアは、まず要素の...

MySQL エラー コード 1064 の解決策

SQL ステートメント内の単語が mysql のキーワードと競合する場合は、`` (タブ キーの上)...

Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...

win10環境でDockerをインストールする実装

1. Docker公式サイトにアクセスするまず、Dockerの公式ウェブサイトにアクセスして、最新の...

Ubuntuの基本設定: openssh-serverのインストールと使用

Ubuntu 17.10 での openssh-server のインストールと使用を記録します。イン...

Nginx ログのカスタマイズとログ バッファの有効化の詳細な説明

序文ウェブサイトのアクセス元をカウントしたい場合は、PHP を使用して情報を取得してデータベースに記...

Node はあいまい検索用の検索ボックスを実装します

この記事の例では、検索ボックスでファジークエリを実装するためのNodeの具体的なコードを参考までに共...

MySQL データベース トランザクション例のチュートリアル

目次1. トランザクションとは何ですか? 2. トランザクションに関連するステートメントは、挿入、削...

フロントエンドAIカットのコツ(体験談)

AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...

JSプロトタイプとプロトタイプチェーンについての簡単な説明

目次1. プロトタイプ2. プロトタイプポインタ: __proto__要約する1. プロトタイプJa...

テキストの展開と折りたたみの効果を実現するJavaScript

リスト形式のテキストの展開と折りたたみの実装は参考までに。具体的な内容は以下のとおりです。必要: 1...

WeChat アプレット計算機の例

この記事では、参考までに、計算機を実装するためのWeChatアプレットの具体的なコードを紹介します。...

Centos7.2 で mysql5.7 データベースをインストールするための詳細な手順

サーバー上の mysql はバージョン 8.0.12 でインストールされており、ローカルのものはバー...