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

JavaScriptでオブジェクトのプロパティをマージしてグループ化する


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

const arr = [
   {name: 'lorem', age: 20, color:'red'},
   {name: 'lorem', weight: 1, height:5} ,
   {name: 'hello', ipsum : 'dolor'}
];

そのようなオブジェクトの配列を1つ取り込むJavaScript関数を作成する必要があります。この関数は、「name」プロパティの値が共通しているオブジェクトのすべてのプロパティをグループ化する必要があります。

例-

上記の配列の場合、出力は次のようになります-

const output = [
   {name: 'lorem', age : 20, color: 'red', weight : 1, height : 5},
   {name: 'hello', ipsum : 'dolor'}
];

このためのコードは-

になります
const arr = [
   {name: 'lorem', age: 20, color:'red'},
   {name: 'lorem', weight: 1, height:5} ,
   {name: 'hello', ipsum : 'dolor'}
];
const mergeList = (arr = []) => {
   const temp = {};
   arr.forEach(elem => {
      let name = elem.name;
      delete elem.name;
      temp[name] = { ...temp[name], ...elem };
   });
   const res = [];
   Object.keys(temp).forEach(key => {
      let object = temp[key];
      object.name = key;
      res.push(object);
   });
   return res;
};
console.log(mergeList(arr));

出力

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

になります
[
   { age: 20, color: 'red', weight: 1, height: 5, name: 'lorem' },
   { ipsum: 'dolor', name: 'hello' }
]

  1. 配列プロパティの長さでJavaScriptオブジェクトを並べ替えます。

    以下は、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&

  2. JavaScriptで既存のオブジェクトにプロパティとメソッドを追加するにはどうすればよいですか?

    以下は、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> <