【JavaScript】filter()を使って別の配列の全要素で配列をフィルタリングする方法
JavaScriptでは、filter()メソッドを使うことで、ある配列から別の配列に含まれる要素をすべて除外できます。本記事では、具体的なサンプルコードとともにその手順をわかりやすく解説します。
フィルタリングの例
まず、1つ目の配列に以下の要素が格納されているとします。
[100, 110, 150, 180, 190, 175]
続いて、2つ目の配列には以下の要素が入っています。
[100, 150, 175]
この2つ目の配列に含まれる要素を、1つ目の配列からすべて取り除きたいケースを考えてみましょう。このような場合、filter()メソッドが便利です。filter()は第2引数にオブジェクトを渡すことができ、そのオブジェクトはコールバック関数内でthisとして参照されます。
サンプルコード
以下が実際のコードです。
var result = [100,110,150,180,190,175].filter(
function(obj) {
return this.indexOf(obj) < 0;
},
[100,150,175]
);
console.log("After filter, the result is=");
console.log(result);コードの仕組み
filter()メソッドは、配列の各要素に対してコールバック関数を実行し、trueを返した要素のみを新しい配列に残します。この例では「this.indexOf(obj) < 0」という条件により、2つ目の配列 [100, 150, 175] に存在しない要素だけが保持されます。その結果、100・150・175が除外され、残りの要素だけが出力されます。
プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo269.js として保存しています。
実行結果
コンソールには以下のように出力されます。
PS C:\Users\Amit\javascript-code> node demo269.js After filter, the result is= [ 110, 180, 190 ]
このように、filter()とindexOf()を組み合わせることで、特定の配列に含まれる要素を効率的に取り除いた新しい配列を簡単に作成できます。元の配列は変更されないため、安全にデータ処理を行えるのも大きなメリットです。
-
複数の値でJavaScript配列の要素を検索する方法
JavaScriptである配列(arr)が、別の配列(arr1)の複数の値・すべての要素を含んでいるかどうかを確認したい場面はよくあります。そんなときは、every()メソッドとincludes()メソッドを組み合わせることで、シンプルに判定できます。以下はそのサンプルコードです。 コード例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content=
-
JavaScriptの配列を文字列に変換する方法【toString()の使い方を解説】
JavaScriptで配列の要素をひとつの文字列として扱いたい場面はよくあります。そんなときに便利なのがtoString()メソッドです。このメソッドを使うと、配列の各要素がカンマ(,)で区切られたひとつの文字列に変換されます。以下は、ボタンをクリックすると配列の中身が文字列として画面に表示されるシンプルなサンプルコードです。サンプルコード<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-