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

JavaScriptでネストされた配列をグループ化する


次のような値の配列があるとします-

const arr = [
   {
      value1:[1,2],
      value2:[{type:'A'}, {type:'B'}]
   },
   {
      value1:[3,5],
      value2:[{type:'B'}, {type:'B'}]
   }
];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。次に、関数は、オブジェクトの「type」プロパティに従ってデータがグループ化される配列を準備する必要があります。

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

const output = [
   {type:'A', value: [1,2]},
   {type:'B', value: [3,5]}
];

このためのコードは-

になります
const arr = [
   {
      value1:[1,2],
      value2:[{type:'A'}, {type:'B'}]
   },
   {
      value1:[3,5],
      value2:[{type:'B'}, {type:'B'}]
   }
];
const groupValues = (arr = []) => {
   const res = [];
   arr.forEach((el, ind) => {
      const thisObj = this;
      el.value2.forEach(element => {
         if (!thisObj[element.type]) {
            thisObj[element.type] = {
               type: element.type,
               value: []
            }
            res.push(thisObj[element.type]);
         };
         if (!thisObj[ind + '|' + element.type]) {
            thisObj[element.type].value =
            thisObj[element.type].value.concat(el.value1);
            thisObj[ind + '|' + element.type] = true;
         };
      });
   }, {})
   return res;
};
console.log(groupValues(arr));

出力

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

になります
[
   { type: 'A', value: [ 1, 2 ] },
   { type: 'B', value: [ 1, 2, 3, 5 ] }
]

  1. JavaScriptの配列slice()

    JavaScript配列slice()メソッドは、選択したアイテムの新しい配列をより大きな配列で返します。元のアレイは変更されません。 以下は、配列slice()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&

  2. 2つのオブジェクトを比較しながら配列のネストされた値をグループ化-JavaScript

    次のJSONオブジェクトがあるとします- const input = {    "before": {      "device": [        {          "id": "1234",          "price": "10",