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 ] } ]
-
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つのオブジェクトを比較しながら配列のネストされた値をグループ化-JavaScript
次のJSONオブジェクトがあるとします- const input = { "before": { "device": [ { "id": "1234", "price": "10",