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

JavaScriptでオブジェクトの配列を組み合わせる


このような一部の学生に関するデータを含むオブジェクトの配列があるとします-

const arr = [{
   name: 'A',
   idNo: 1,
   marks: {
      math: 98,
      sci: 97,
      eng: 89
   }
},
{
   name: 'B',
   idNo: 2,
   marks: {
      math: 88,
      sci: 87,
      eng: 79
   }
},
{
   name: 'C',
   idNo: 3,
   marks: {
      math: 87,
      sci: 98,
      eng: 91
   }
}];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。

次に、関数はプロパティのオブジェクトを準備する必要があります。オブジェクトが現在持っているオブジェクトIDごとに1つのプロパティです。

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

const output = {
   name: [A, B, C],
   idNo: [1, 2, 3],
   marks: [{
      math: 98,
      sci: 97,
      eng: 89
   },
   {
      math: 88,
      sci: 87,
      eng: 79
   },
   {
      math: 87,
      sci: 98,
      eng: 91
   }]
};

このためのコードは-

になります
const arr = [{
   name: 'A',
   idNo: 1,
   marks: {
      math: 98,
      sci: 97,
      eng: 89
   }
},
{
   name: 'B',
   idNo: 2,
   marks: {
      math: 88,
      sci: 87,
      eng: 79
   }
},
{
   name: 'C',
   idNo: 3,
   marks: {
      math: 87,
      sci: 98,
      eng: 91
   }
}];
const combineMarks = (arr = []) => {
   let res = [];
   res = arr.reduce((acc, val) => {
      Object.keys(val).forEach(el => {
         if (!acc[el]) {
            acc[el] = [];
         };
         acc[el].push(val[el])
      });
      return acc;
   }, {});
   return res;
};
console.log(combineMarks(arr));

出力

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

になります
{
   name: [ 'A', 'B', 'C' ],
   idNo: [ 1, 2, 3 ],
   marks: [
      { math: 98, sci: 97, eng: 89 },
      { math: 88, sci: 87, eng: 79 },
      { math: 87, sci: 98, eng: 91 }
   ]
}

  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> <styl

  2. JavaScriptでツリー化するオブジェクトのフラット配列

    このようなオブジェクトの配列があるとします- const arr = [    { id: '1', name: 'name 1', parentId: null },    { id: '2', name: 'name 2', parentId: null },    { id: '2_1', name: 'name 2_1', parentId: '2' },    { id: '2_2