ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript オブジェクトの配列から一意のプロパティ値を効率的に抽出する方法

JavaScript オブジェクトの配列から一意のプロパティ値を効率的に抽出する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-03 12:56:11417ブラウズ

How to Efficiently Extract Unique Property Values from an Array of JavaScript Objects?

JavaScript でオブジェクトの配列から個別の値を効率的に取得する

オブジェクトの配列が与えられた場合、タスクは、特定のオブジェクトの個別の値のみを含む新しい配列を抽出することです。財産。たとえば、次の配列について考えてみます。

var array = 
    [
        { "name": "Joe", "age": 17 }, 
        { "name": "Bob", "age": 17 }, 
        { "name": "Carl", "age": 35 }
    ]

目的は、この配列から個別の年齢を含む配列を取得することです。その結果、次の結果が得られます。

[17, 35]

反復解

簡単なアプローチには、配列内のオブジェクトを反復処理し、各オブジェクトの年齢が結果の配列に存在するかどうかを確認することが含まれます。そうでない場合は、年齢が結果の配列に追加されます。このアプローチは機能しますが、複数の反復と比較に依存しているため非効率的です。

var distinct = []
for (var i = 0; i < array.length; i++)
    if (array[i].age not in distinct)
        distinct.push(array[i].age)

ES6 Set を使用した最適化されたソリューション

より効率的に処理するには、ES6 /ES2015 は、一意の値の保存を可能にする Set データ構造を提供します。これを利用する方法は次のとおりです。

const data = [
  { "group": 'A', "name": 'SD' }, 
  { "group": 'B', "name": 'FI' }, 
  { "group": 'A', "name": 'MM' },
  { "group": 'B', "name": 'CO'}
];

const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']

オブジェクトの配列を必要なプロパティ値の配列にマッピングし、そこから Set を作成することで、重複する値を排除します。次に、スプ​​レッド演算子 (...) を使用して Set を配列に変換すると、望ましい結果が得られます。

以上がJavaScript オブジェクトの配列から一意のプロパティ値を効率的に抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。