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

同じプロパティを持つ2つのオブジェクトのJavaScript合計


次のような2つのオブジェクトがあるとします-

const obj1 = {
   a:12, b:8, c:17
};
const obj2 = {
   a:2, b:4, c:1
};

このような2つのオブジェクトを取り込むJavaScript関数を作成する必要があります。

関数は、同一のプロパティの値を1つのプロパティに合計する必要があります。したがって、最終的なオブジェクトは次のようになります-

const output = {
   a:14, b:12, c:18
};

注-簡単にするために、2つのオブジェクトを使用しましたが、任意の数のオブジェクトを取り込んでそれらのプロパティ値を追加できるように関数を作成する必要があります。

const obj1 = {
   a:12,
   b:8,
   c:17
};
const obj2 = {
   a:2,
   b:4,
   c:1
};
const sumObjectsByKey = (...objs) => {
   const res = objs.reduce((a, b) => {
      for (let k in b) {
         if (b.hasOwnProperty(k))
         a[k] = (a[k] || 0) + b[k];
      }
      return a;
   }, {});
   return res;
}
console.log(sumObjectsByKey(obj1, obj2));

出力

そして、コンソールの出力は-

になります
{ a: 14, b: 12, c: 18 }

  1. 2つのJavaScriptオブジェクトをマージする方法は?

    以下は、2つのJavaScriptオブジェクトをマージするコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs

  2. JavaScriptのBSTの2つの合計

    問題: 最初の引数と2番目の引数として、2つの二分探索木のルートであるroot1とroot2をそれぞれ取り込むJavaScript関数を作成する必要があります。関数の3番目の引数はnumber、targetです。 この関数は、最初のツリーにノードがあり、2番目のツリーにノードがあり、その値の合計が特定の整数ターゲットになる場合にのみTrueを返し、それ以外の場合はfalseを返す必要があります。 たとえば、関数への入力が-の場合 const target = 23; BST その場合、出力は-になります。 const output = true; 出力の説明: 最初のツリーに