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

JavaScriptでJSON配列を再グループ化する


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

const arr = [
   {
      "id": "03868185",
      "month_10": 6,
   },
   {
      "id": "03870584",
      "month_6": 2,
   },
   {
      "id": "03870584",
      "month_7": 5,
   },
   {
      "id": "51295",
      "month_1": 1,
   },
   {
      "id": "51295",
      "month_10": 1,
   },
   {
      "id": "55468",
      "month_11": 1,
   }
];

ここでは、同じ「id」プロパティがいくつかのオブジェクトで繰り返されていることがわかります。 1つのオブジェクトにグループ化された特定の「id」プロパティのすべてのキーと値のペアを含む1つのそのような配列を受け取るJavaScript関数を作成する必要があります。

このためのコードは-

になります
const arr = [
   {
      "id": "03868185",
      "month_10": 6,
   },
   {
      "id": "03870584",
      "month_6": 2,
   },
   {
      "id": "03870584",
      "month_7": 5,
   },
   {
      "id": "51295",
      "month_1": 1,
   },
   {
      "id": "51295",
      "month_10": 1,
   },
   {
      "id": "55468",
      "month_11": 1,
   }
];
const groupById = (arr = []) => {
   const map = {};
   const res = [];
   arr.forEach(el => {
      if(map.hasOwnProperty(el['id'])){
         const index = map[el['id']] - 1;
         const key = Object.keys(el)[1];
         res[index][key] = el[key];
      }
      else{
         map[el['id']] = res.push(el);
      }
   })
   return res;
};
console.log(groupById(arr));

出力

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

になります
[
   { id: '03868185', month_10: 6 },
   { id: '03870584', month_6: 2, month_7: 5 },
   { id: '51295', month_1: 1, month_10: 1 },
   { id: '55468', month_11: 1 }
]

  1. JavaScriptJSON配列

    JSONの配列は、JavaScriptの配列に似ています。 JavaScriptJSON配列は次のようになります- let obj = {    name:'Rohan',    sports : ['cricket','Football','volleyball','hockey'] } 以下はJavaScriptのJSON配列のコードです- 例 <!DOCTYPE html> <html lang="en"> <head

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