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 つの方法の詳細なコード例

推薦する

CSS3アニメーションを使用して、小さい円から大きい円に拡大し、外側に広がる効果を実現する例

序文この記事では、CSS3アニメーションを使用して、円が小さいものから大きく拡大し、外側に広がる効果...

MySQLインデックスの詳細

1. インデックスの原則インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。...

Vue v-model 関連の知識のまとめ

​v-model は、入力とフォーム データ間、または 2 つのコンポーネント間の双方向データ バイ...

選択/フォーカス時にすべてのオプションをリストする現在のより良い方法

開発中にこのような要件に遭遇したので、将来使用するために記録しました。需要背景キーボード ショートカ...

Windows が MySQL サービスを開始できず、エラー 1067 を報告する場合の解決策

突然、MySQLにログインすると、アクセスが拒否されたか、データベースに接続できないと表示されました...

MySQL マスターとスレーブの不整合とその解決策の詳細な説明

1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...

MySQL 5.7 JSON 型の使用の詳細

JSON は、言語に依存しないテキスト形式を使用する軽量のデータ交換形式で、XML に似ていますが、...

WeChatアプレット+EChartsで動的更新プロセス記録を実現

序文最近、小さなプログラムでリアルタイムにチャートを更新するという要件に遭遇しました。最初は wx-...

Linux 上の MYSQL 5.7 でルート パスワードを取得する際の問題 (テスト済み、利用可能)

目次1. --skip-grant-tables 経由で取得する1.1 my.conf を変更し、新...

docker と docker-compose による eureka の高可用性の実現の詳細な説明

最近、新しいプロジェクトでは springcloud と docker が使用されています。この 2...

Vue 開発者向けの VSCode 拡張機能ベスト 7

適切な VS Code 拡張機能を Visual Studio に追加すると、開発者としての作業がは...

MySQLのCOUNT(*)のパフォーマンスについてお話しましょう

序文基本的に、職場のプログラマーは、count(*)、count(1)、または count(prim...

Reactはラジオコンポーネントのサンプルコードを実装します

この記事の目的は、最も明確な構造を使用していくつかのコンポーネントの基本機能を実装することです。皆さ...

MySql カンマ連結文字列クエリの 2 つの方法

次の2つの関数は、 FIND_IN_SETと同じように使用されます。使用する場合、 FIND_IN_...