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

JavaScriptで配列から一意の値(一度だけ出現する要素)を抽出する方法

まず、次のように重複した要素を含む配列があると仮定しましょう。

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

ここで求められているのは、このような配列を引数として受け取り、元の配列内に一度だけ出現する要素のみを含む新しい配列を返すJavaScript関数を作成することです。

なお、これは単純な重複削除とは異なります。重複削除では各値を1つ残しますが、今回は「1回しか登場しない値」だけを抜き出す点がポイントです。上記の例では 35 のみが該当します。

コード例

以下がその実装コードです。

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));

仕組みの解説

この関数では、各要素に対して indexOf()lastIndexOf() の結果を比較しています。
両者が同じインデックスを返す場合、その要素は配列内に一度しか存在しないことを意味し、結果配列へ追加されます。逆に両者が異なる場合は、その要素が複数回出現しているため continue によってスキップされます。

出力

コンソールには次の出力が表示されます。

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

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

  2. JavaScript配列から一意の値(重複なし)を取得する方法

    JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <