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

オブジェクトのコレクションを減らしてマージするための最良の方法は何ですか– JavaScript?


オブジェクトのコレクションを削減およびマージするための最良の方法は、Reduce()とともにObject.values()の概念を使用することです。

以下はオブジェクトです-

var details = [
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 11, marks: 98, studentName: "Bob" }
];

以下は、削減してマージするコードです-

var details = [
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 10, marks: 75, studentName: "John" },
   { studentId: 11, marks: 98, studentName: "Bob" }
];
output = Object.values(details.reduce((value, object) => {
   if (value[object.studentId]) {
      ['marks'].forEach(key => value[object.studentId][key] = value[object.studentId][key] + object[key]);
      } else {
         value[object.studentId] = { ...object };
   }
   return value;
}, {}));
console.log(output);

上記のプログラムを実行するには、次のコマンドを使用します-

node fileName.js.

ここで、私のファイル名はdemo237.jsです。

出力

出力は次のとおりです-

PS C:\Users\Amit\javascript-code> node demo237.js
[
   { studentId: 10, marks: 150, studentName: 'John' },
   { studentId: 11, marks: 98, studentName: 'Bob' }
]

  1. JavaScriptでイベントを追加する最良の方法は何ですか?

    任意の要素にイベントを追加する最良の方法は、addEventListener()メソッドを使用することです。 以下は、JavaScriptでイベントを追加するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  2. JavaScriptを使用して新しいブラウザウィンドウを開くための最良の方法は何ですか?

    ウィンドウオブジェクトのopen()メソッドは、JavaScriptを使用して新しいブラウザウィンドウを開くための最良の方法です 以下は、JavaScriptを使用して新しいブラウザウィンドウを開くためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-sc