ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でオブジェクトの配列から固有の年齢を抽出する方法

JavaScript でオブジェクトの配列から固有の年齢を抽出する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-22 01:56:12344ブラウズ

How to Extract Unique Ages from an Array of Objects in JavaScript?

JavaScript でオブジェクトの配列から個別の値を抽出する

各オブジェクトが名前と年齢を持つ個人を表すオブジェクトの配列を考えます。

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

タスクは、この配列から異なる年齢を抽出し、一意の新しい配列を作成することです。値:

[17, 35]

JavaScript 固有のソリューション (ES6 以降)

ES6 では、一意の値のコレクションを自動的に維持する Set データ構造が導入されています。これを利用すると、個別の年齢を効率的に抽出できます。

const distinctAges = [...new Set(array.map(object => object.age))];

このアプローチでは、元の配列内の各オブジェクトの age プロパティに存在する一意の値のみを含む新しい配列が作成されます。

代替データ構造

パフォーマンスが最重要である場合は、マップやobject:

const ageMap = {};
array.forEach(object => {
  ageMap[object.age] = true;
});

const distinctAges = Object.keys(ageMap).map(Number);

このシナリオでは、年齢の値はオブジェクト (マップ) にキーとして保存されます。 Object.keys() メソッドは、一意のキー (年齢値) を配列として取得し、map(Number) を使用して数値に変換します。

改良されたメソッド

初期反復メソッド質問に示されている問題は、include() メソッドを使用して重複値をチェックすることで改善できます:

var distinct = [];
for (var i = 0; i < array.length; i++) {
  if (!distinct.includes(array[i].age)) {
    distinct.push(array[i].age);
  }
}

この最適化により、比較の数が減少します。重複する年齢の複数のチェックを避けることが必要です。

以上がJavaScript でオブジェクトの配列から固有の年齢を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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