JavaScript の便利な配列トリック 12 選

JavaScript の便利な配列トリック 12 選

配列は、Javascript で最も一般的な概念の 1 つです。配列は、データ処理のさまざまな可能性を提供します。配列の一般的な操作のいくつかに精通する必要があります。

アレイ重複排除

1. from() を新しい Set() メソッドに重ねる

文字列または数値配列から重複を削除するには、from メソッドを直接使用できます。

var plants = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
var uniquePlants = Array.from(new Set(plants)); 
console.log(uniquePlants); // [ '土星', '地球', '天王星', '水星', '金星', '火星', '木星' ]

2. スプレッド演算子 (…)

スプレッド演算子は ES6 の主要な革新であり、多くの強力な機能を備えています。

var plants = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
var uniquePlants = [...新しいSet(plants)]; 
console.log(uniquePlants); // [ '土星', '地球', '天王星', '水星', '金星', '火星', '木星' ]

配列内の特定の値を置き換える

splice() メソッドは、配列に項目を追加または配列から項目を削除し、削除された項目を返します。このメソッドは元の配列を変更します。値を挿入する場所に特に注意してください。

// arrayObject.splice(インデックス、数、項目1、.....、項目X)

var plants = ['土星', '天王星', '水星', '金星', '地球', '火星', '木星'];
var result = plants.splice(2, 1, 'www.shanzhonglei.com')
console.log(plants); // ['土星','天王星','www.shanzhonglei.com','水星','金星','地球','火星','木星']
console.log(結果); // ['Mercury']

map() を使わずに配列をマッピングする

まずはマップ方式を紹介しましょう。 map() メソッドは新しい配列を返します。配列内の要素は、関数を呼び出した後の元の配列要素の値です。元の配列要素の順序で要素を処理します。注意: map() は元の配列を変更せず、空の配列の検出も実行しません。

マップなしで配列マッピングを実装してみましょう。

// 配列.map(function(currentValue,index,arr), thisValue)

var 植物 = [
    { 名前: "土星" },
    { 名前: "天王星" },
    { 名前: "水星" },
    { 名前: "金星" },
]
var plantsName = Array.from(plants, ({ name }) => name);
console.log(plantsName); // [ '土星', '天王星', '水星', '金星' ]

空の配列

配列をクリアしたい場合は、配列の長さを 0 に設定するだけです。これは少し単純です。

var plants = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
植物の長さ = 0;
console.log(植物); // []

配列をオブジェクトに変換する

配列をオブジェクトに変換する場合、最も速い方法はスプレッド演算子 (...) を使用することです。

var plants = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
var plantsObj = { ... 植物 }
console.log(plantsObj); // {'0': '土星','1': '地球', '2': '天王星','3': '水星','4': '金星','5': '地球','6': '火星','7': '木星'}

配列にデータを入力する

配列に何らかのデータを入力する必要がある場合、または同じ値のデータが必要な場合は、fill() メソッドを使用できます。

var plants = new Array(8).fill('8');
console.log(植物); // ['8', '8', '8', '8', '8', '8', '8', '8', '8']

配列の結合

もちろん、concat() メソッドを思い浮かべるでしょうが、スプレッド演算子 (...) も非常に便利です。これは、スプレッド演算子の別の応用です。

var plants1 = ['土星', '地球', '天王星', '水星'];
var plants2 = ['金星', '地球', '火星', '木星'];
console.log([...plants1, ...plants2]); // ['土星', '地球','天王星', '水星', '金星', '地球','火星', '木星']

2つの配列の交差

2 つの配列の交差部分を見つけるには、まず配列に重複がないことを確認し、次に filter() メソッドと include() メソッドを使用します。

var plants1 = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
var plants2 = ['土星', '地球', '天王星'];
var alonePlants = [...new Set(plants1)].filter(item => plants2.includes(item));
console.log(alonePlants); // [ '土星', '地球', '天王星' ]

配列から偽の値を削除する

データを処理するときに誤った値を削除する必要があることがよくあります。 JavaScript では、偽の値は false、0、" "、null、NaN、undefined です。

var plants = ['土星', '地球', null, undefined, false, "", NaN, '天王星', '水星', '金星', '地球', '火星', '木星'];
var trueArr = plants.filter(ブール値);
console.log(trueArr); // ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星']

配列からランダムな値を取得する

配列の長さに基づいてランダムなインデックス番号を取得できます。

var plants = ['土星', '地球', '天王星', '水星', '金星', '地球', '火星', '木星'];
console.log(plants[Math.floor(Math.random() * (plants.length + 1))])

lastIndexOf() メソッド

lastIndexOf() は、要素が最後に出現したインデックスを見つけるのに役立ちます。

// 配列.reduce(関数(合計、現在の値、現在のインデックス、arr)、初期値)

var 数値 = [1, 2, 3, 4, 5];
var sum = nums.reduce((x, y) => x + y);
console.log(合計); // 15

配列内のすべての値を追加する

Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が単一の値に減らされます。

// 配列.reduce(関数(合計、現在の値、現在のインデックス、arr)、初期値)

var 数値 = [1, 2, 3, 4, 5];
var sum = nums.reduce((x, y) => x + y);
console.log(合計); // 15

これで、JavaScript の便利な配列テクニック 12 個に関するこの記事は終了です。JavaScript 配列に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript es6 の新しい配列メソッドの詳細な説明
  • JS配列メソッドの詳細な説明
  • JavaScript配列の一般的なメソッドの詳細な説明
  • JavaScript配列の一般的なメソッドの概要
  • JS配列の一般的な方法とテクニックを学び、マスターになりましょう

<<:  Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

>>:  HTMLフォームアプリケーションにはチェックボックスとラジオボタンの使用が含まれます

推薦する

MySQL におけるデータタイムとタイムスタンプの違い

MySQL には 3 つの日付型があります。日付(年-月-日)テーブル test(hiredate ...

TypeScriptの基本型の詳細な説明

目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...

MySQLデータベースバックアップのさまざまな実装方法の概要

この記事では、MySQL データベースのバックアップを実装するさまざまな方法について説明します。ご参...

画像の一時停止を実現するjQueryプラグイン

この記事では、画像の一時停止を実現するためのjQueryプラグインの具体的なコードを参考までに共有し...

マウスを置いたときに半透明効果のテキスト説明を実現するための純粋な CSS (初心者は必読)

効果は以下のとおりです。 例1 例2:例1[結婚式の計画]を例にとるHTML: <div cl...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

NginxはLua+Redisを使用してIPを動的にブロックします

1. 背景日常的なウェブサイトのメンテナンスでは、このような要件に頻繁に遭遇します。特定のクローラー...

layui をベースにしたログインページの実装

この記事の例では、ログインページを実装するためのlayuiの具体的なコードを参考までに共有しています...

Expressを使用してプロジェクトを自動的にビルドするNode.jsのプロセス全体

1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...

MySQLリモート接続を有効にする方法

セキュリティ上の理由から、MySql-Server はローカル マシン (localhost、127...

mysql5.7 以降で my.ini を設定するための詳細な手順

Windows 64 ビット版 MySQL 5.7 以降の解凍パッケージにデータディレクトリ、my-...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

Docker でタイムゾーンの問題に対処する方法

背景ここ 2 日間 Docker を使用していたところ、コンテナの起動後に date -R の出力タ...

HTML チュートリアル: title 属性と alt 属性

XHTML は CSS レイアウトの基礎です。jb51.net は常に XHTML 知識の習得を重視...