ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript オブジェクト内の類似したキーの値を効率的に合計するにはどうすればよいですか?

JavaScript オブジェクト内の類似したキーの値を効率的に合計するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-23 04:17:13
オリジナル
178 人が閲覧しました

How to Efficiently Sum Values of Similar Keys in JavaScript Objects?

類似したオブジェクト キーの値の合計

JavaScript オブジェクトの配列が与えられた場合、類似したキーに関連付けられた値を効果的に合計するにはどうすればよいですか?

アプローチ

これを達成するには、次の方法を使用できます。手順:

  1. Holder オブジェクトの作成: 元の配列を反復処理し、name プロパティをキーとしてオブジェクト、holder を設定します。キーごとに、値を対応する値に初期化するか、キーがすでに存在する場合は既存の値に値を追加します。
  2. 新しい配列を構築します: ホルダー オブジェクトを取得したら、新しい配列 obj2 のプロパティを反復処理します。プロパティごとに、キーという名前と値の合計を値として持つオブジェクトを作成します。

配列の例を考えてみましょう。

var obj = [
  { 'name': 'P1', 'value': 150 },
  { 'name': 'P1', 'value': 150 },
  { 'name': 'P2', 'value': 200 },
  { 'name': 'P3', 'value': 450 }
];
ログイン後にコピー

上記のアプローチを適用すると:

// Create a holder object to sum values for similar names
var holder = {};
obj.forEach(function(d) {
  if (holder.hasOwnProperty(d.name)) {
    holder[d.name] = holder[d.name] + d.value;
  } else {
    holder[d.name] = d.value;
  }
});

// Populate a new array with the summed values
var obj2 = [];
for (var prop in holder) {
  obj2.push({ name: prop, value: holder[prop] });
}

// Output the result
console.log(obj2);
ログイン後にコピー

期待される出力:

[
  { 'name': 'P1', 'value': 300 },
  { 'name': 'P2', 'value': 200 },
  { 'name': 'P3', 'value': 450 }
]
ログイン後にコピー

以上がJavaScript オブジェクト内の類似したキーの値を効率的に合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート