Массив создания объекта в Javascript

Массив создания объекта в Javascript

Хотя это можно сделать с помощью Array.reduce() по-другому, вы были достаточно близки к этому. Вам нужно только проверить, существует ли созданный вами под-массив, прежде чем переопределять его. Если массив существует, вы должны нажать вместо создания другого.

Ваша линия —

 temp[`${val.category_id}:${val.category_name}`] = [`${val.subcategory_id}:${val.subcategory_name}`]; 

переопределяет массив последним полученным значением и создает другой массив вместо того, чтобы выдвигать его на существующий

Запустите фрагмент ниже, чтобы проверить —

 let inputObj = [ { user_category_id: '1', category_id: '1', subcategory_id: '1', category_name: 'Category 1', subcategory_name: 'Sub Category 1' }, { user_category_id: '2', category_id: '1', subcategory_id: '2', category_name: 'Category 1', subcategory_name: 'Sub Category 2' }, { user_category_id: '3', category_id: '1', subcategory_id: '3', category_name: 'Category 1', subcategory_name: 'Sub Category 3' }, { user_category_id: '4', category_id: '2', subcategory_id: '4', category_name: 'Category 2', subcategory_name: 'Sub Category 4' }, { user_category_id: '5', category_id: '2', subcategory_id: '5', category_name: 'Category 2', subcategory_name: 'Sub Category 5' }, { user_category_id: '6', category_id: '3', subcategory_id: '6', category_name: 'Category 3', subcategory_name: 'Sub Category 6' }, ]; let temp = [] inputObj.forEach((val, index) ={amp}gt; { if(typeof (temp[`${val.category_id}:${val.category_name}`]) === 'undefined'){ temp[`${val.category_id}:${val.category_name}`] = [`${val.subcategory_id}:${val.subcategory_name}`]; }else{ temp[`${val.category_id}:${val.category_name}`].push(`${val.subcategory_id}:${val.subcategory_name}`); } }); console.log(temp) 
Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector