JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで配列から一意(ユニーク)な要素だけを抽出する方法

JavaScriptでは、重複した要素を含む配列から「1回だけ出現する要素」を取り出したいケースがあります。

例えば、次のような配列を考えてみましょう。

const arr = [1,1,2,2,3,4,4,5];

この配列には「1」「2」「4」がそれぞれ2回含まれています。ここで求められているのは、元の配列内に一度しか現れない要素だけを集めた新しい配列を返す関数です。上記の例であれば、結果として [3, 5] が得られます。

それでは、実際にコードを見ていきましょう。

実装例

const arr = [1,1,2,2,3,4,4,5];
const extractUnique = arr => {
    const res = [];
    for(let i = 0; i < arr.length; i++){
        if(arr.lastIndexOf(arr[i]) !== arr.indexOf(arr[i])){
            continue;
        };
        res.push(arr[i]);
    };
    return res;
};
console.log(extractUnique(arr));

出力結果

コンソールには以下のように表示されます。

[ 3, 5 ]

コードの解説

この関数の仕組みはとてもシンプルです。indexOf() は指定した要素が最初に出現するインデックスを返し、lastIndexOf()最後に出現するインデックスを返します。

要素が配列内に1回しか存在しない場合、この2つの戻り値は必ず一致します。逆に、両者が異なる場合はその要素が複数回出現していることを意味するため、continue 文によってループがスキップされ、結果の配列には追加されません。

このように、標準メソッドの組み合わせだけで、フィルタ処理を直感的に実装できるのがポイントです。

  1. JavaScriptの基本配列メソッド解説!push・pop・shift・unshift・spliceの使い方を実例付きで紹介

    JavaScriptには、配列を操作するための便利な組み込みメソッドが数多く用意されています。その中でも特によく使われるのが、要素の追加や削除を行う以下の5つの基本メソッドです。 JavaScriptの主要な配列メソッド一覧 メソッド説明 Array.push()配列の末尾に要素を追加します。 Array.pop()配列の末尾から要素を取り除きます。 Array.unshift()配列の先頭に要素を追加します。 Array.shift()配列の先頭から要素を取り除きます。 Array.splice()配列内の任意の位置で要素の追加・削除を行います。 これらのメソッドは、配列の

  2. JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説

    Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g