JavaScriptで配列から一意の値(一度だけ出現する要素)を抽出する方法
まず、次のように重複した要素を含む配列があると仮定しましょう。
const arr = [1,1,2,2,3,4,4,5];
ここで求められているのは、このような配列を引数として受け取り、元の配列内に一度だけ出現する要素のみを含む新しい配列を返すJavaScript関数を作成することです。
なお、これは単純な重複削除とは異なります。重複削除では各値を1つ残しますが、今回は「1回しか登場しない値」だけを抜き出す点がポイントです。上記の例では 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));仕組みの解説
この関数では、各要素に対して indexOf() と lastIndexOf() の結果を比較しています。
両者が同じインデックスを返す場合、その要素は配列内に一度しか存在しないことを意味し、結果配列へ追加されます。逆に両者が異なる場合は、その要素が複数回出現しているため continue によってスキップされます。
出力
コンソールには次の出力が表示されます。
[ 3, 5 ]
-
JavaScriptのArray.from()メソッドとは?使い方と実例をわかりやすく解説
Array.from()メソッドは、配列風オブジェクト(array-like)や反復可能オブジェクト(iterable)から、新しい配列オブジェクトを作成するための便利なメソッドです。文字列、Map、Set、NodeListなど、さまざまなデータを手軽に配列へ変換できます。 Array.from()の基本的な動作 例えば、文字列「HelloWorld」に対してArray.from()を使用すると、1文字ずつ分割された新しい配列が生成されます。以下に実際のコード例を示します。 サンプルコード <!DOCTYPE html> <html lang="ja"&g
-
JavaScript配列から一意の値(重複なし)を取得する方法
JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <