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

JavaScriptで一致するオブジェクト値を追加する


このようなオブジェクトの配列があるとします-

const arr = [{a: 2, b: 5, c: 6}, {a:3, b: 4, d:1},{a: 1, d: 2}];

各オブジェクトはそれ自体が一意である必要がありますが(有効なオブジェクトであるため)、2つの異なるオブジェクトが共通のキーを持つことができます(この質問の目的のため)。

そのような配列を1つ取り込んで、配列に存在するすべての一意のキーとその値の累積合計を値として持つオブジェクトを返すJavaScript関数を作成する必要があります。

したがって、結果のオブジェクトは次のようになります-

const output = {a: 6, b: 9, c: 6, d: 3};

したがって、この関数のコードを書いてみましょう-

このためのコードは-

になります
const arr = [{a: 2, b: 5, c: 6}, {a: 3, b: 4, d:1}, {a: 1, d: 2}];
const sumArray = arr => {
   const res = {};
   for(let i = 0; i < arr.length; i++){
      Object.keys(arr[i]).forEach(key => {
         res[key] = (res[key] || 0) + arr[i][key];
      });
   };
   return res;
};
console.log(sumArray(arr));

出力

コンソールの出力は-

になります
{ a: 6, b: 9, c: 6, d: 3 }

  1. JavaScriptでオブジェクトをマップします。

    マップオブジェクトはES6で導入され、キーと値のペアである要素のコレクションです。マップ内のキーまたは値は、オブジェクトまたはプリミティブ値にすることができます。 以下はJavaScriptのマップオブジェクトのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initia

  2. JavaScriptのBlobオブジェクト

    blobオブジェクトは、不変のblobオブジェクトを表すために使用され、生データを表すために使用されます。 BLOBには、ファイルと同じようにサイズとmimeタイプのプロパティがあります。ファイルはblobの派生物であり、blobはファイルが使用される場所で使用できます。 以下は、JavaScriptでblobオブジェクトを表示するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name=