JavaScript 配列を走査する 5 つの方法

JavaScript 配列を走査する 5 つの方法

JavaScript でコードを記述する場合、for ループ、forEach ループ、map ループ、forIn ループ、forOf ループなど、複数の方法を使用して配列を走査できます。

1. forループ: 基本的でシンプル

これは配列を走査する最も基本的かつ一般的に使用される方法であり、さまざまな開発言語が一般的にこの方法をサポートしています。

arr = ['a','b','c','d','e'] とします。
(i = 0, len = arr.length; i < len; i++) の場合 {
  コンソール.log(i); // 0 1 2 3 4
  console.log(arr[i]); //abcde
}

2. forEach() メソッド: コールバック関数の使用

forEach() これは配列オブジェクトのメソッドであり、コールバック関数をパラメーターとして受け入れます。
コールバック関数には 3 つのパラメーターがあります。

  • 1番目: 配列要素(必須)
  • 2番目: 配列要素のインデックス値(オプション)
  • 3番目: 配列自体 (オプション)
arr = ['a','b','c','d','e'] とします。
arr.forEach((item,index,arr)=> {
  console.log(item); // abcde console.log(index); // 0 1 2 3 4
  console.log(arr); // ['a','b','c','d','e']
})

3. map() メソッド: コールバック関数の使用

forEach() メソッドと同じように使用されます。

var arr = [
  {名前:'a',年齢:'18'},
  {名前:'b'、年齢:'19'},
  {名前:'c'、年齢:'20'}
];
arr.map(関数(項目,インデックス) {
  if(item.name == 'b') {
    コンソール.log(インデックス) // 1
  }
})

4. for..in ループ: オブジェクトと配列の走査

for…in ループは、オブジェクトと配列をループするために使用できます。
ループオブジェクトに推奨されますが、JSON をトラバースするためにも使用できます。

obj = {
  名前: '王大奎'、
  年齢: '18',
  体重: '70kg'
}
for(var key in obj) {
  console.log(key); // 名前 年齢 体重
  console.log(obj[key]); // 王大奎 18 70kg
}
----------------------------
arr = ['a','b','c','d','e'] とします。
for(var key in arr) {
  console.log(key); // 0 1 2 3 4 は配列のインデックスを返します console.log(arr[key]) // abcde
}

5. for…of ループ: オブジェクトと配列の走査

配列をループする場合に推奨されます。

for...of には 3 つの新しいメソッドが用意されています。

  • key() はキー名のトラバースです。
  • value() はキー値のトラバースです。
  • entry() はキーと値のペアの走査です。
let arr = ['iFLYTEK', '政治と法律のBG', 'フロントエンド開発'];
for (let 項目の arr) { 
 console.log(item); // iFLYTEK 政治と法律 BG フロントエンド開発}
// 出力配列インデックス for (let item of arr.keys()) { 
 コンソール.log(アイテム); // 0 1 2
}
// 出力内容とインデックス for (let [item, val] of arr.entries()) { 
 console.log(item + ':' + val); // 0: iFLYTEK 1: 政治と法律 BG 2: フロントエンド開発}

6. 補足

6.1. 中断と継続の問題

forEach、map、filter、reduce、every、some関数では、 breakおよびcontinueキーワードは関数内にあるため有効になりませんが、関数はクロージャ トラップの問題を解決します。
break または continue を使用するには、 for、for...in、for...of、while使用できます。

6.2 配列とオブジェクト

配列要素を反復処理するには、 for(),forEach(),map(),for...of使用します。
オブジェクトのプロパティをループするには、 for...in使用します。

上記は、JavaScript 配列トラバーサルの 5 つの方法の詳細です。JavaScript 配列トラバーサルの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • JS でよく使用される配列トラバーサル方法と、パフォーマンス分析および比較の詳細な例
  • JavaScript 配列トラバーサルメソッドの分析例
  • JS 配列トラバーサル方法の詳細な分析 (推奨)
  • JavaScript の配列トラバーサル forEach() および map() メソッドとそれらの互換性のある記述方法の紹介
  • JavaScriptの配列トラバーサルのforとforの違いの詳細な説明
  • IE8 の JS 解析における属性と配列のトラバーサルの違いについての議論
  • JavaScript ブラウザはバインディング イベント引数の変換配列の配列トラバーサルを決定します
  • JS 配列トラバーサルにおける for、for in、for of、map、forEach の使い方と利点と欠点

<<:  MySQL グリーンバージョン設定コードと 1067 エラーの詳細

>>:  Dockerfile を使用して Java ランタイム環境のミラーを作成する方法

推薦する

Vueバインディングクラスとバインディングインラインスタイルの実装方法

目次バインディングクラスインラインスタイルのバインディングバインディングクラス方法1:オブジェクト構...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

JavaScript プリミティブデータ型シンボルの詳細な説明

目次導入説明名前の競合私有財産要約する導入シンボル変数を作成する最も簡単な方法は、Symbol() ...

フロントエンドのパフォーマンス最適化を学ぶ準備として、HTMLページのレンダリングプロセスを理解する

現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...

CSS3は円錐グラデーション効果を実現します

文法:背景画像: 円錐グラデーション(位置の角度から、開始色、...、最後の色)最初のパラメータ:開...

MySQLのconcat関連関数の詳細な説明

1. concat() 関数機能: 複数の文字列を 1 つの文字列に連結する構文: concat(s...

HTML フレームセットのサンプルコード

この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。さて、ま...

MacOS で Docker を使用して MySQL マスター スレーブ データベースを作成する方法

1. MySQLイメージを取得するターミナルから最新のMySQLイメージを取得するdocker pu...

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

MySql 5.7.21 無料インストール バージョンの構成方法 (Win10 の場合)

1.インストールしたい場所に解凍し、my.iniファイルを作成します。 my.iniの内容は次のと...

CSS 配送先住所平行四辺形線スタイルの例コード

コードは次のようになります。 // 配送先住所の平行四辺形の線のスタイル <view clas...

Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む

序文今日、自作のコンポーネントを使っていたところ、突然、長い間忘れていたバブリングイベントに遭遇しま...

ウェブサイトのビジュアルデザイン(画像とテキスト)における情報伝達の役割と方法

現代の Web ビジュアル デザインは、初期の情報の積み重ねから、その後のグラフィックスと抽象化、そ...

Axios はリクエストをキャンセルし、重複リクエストを回避します

目次起源現状リクエストをキャンセル cancelTokenリクエスト方法の変更重複したリクエストを避...