#javascript
#javascript
Вопрос:
Например, у меня есть массив, в котором есть дубликаты категорий
array = { Категория: «Монетизация на основе рекламы», подкатегория: «Контент и информационные услуги»}, { Категория: «Балансовые предприятия», подкатегория: «тест1»}, { Категория: «Балансовые предприятия», подкатегория: «тест2»}
Я хочу иметь возможность помещать значения этого массива в новый массив, но в следующем формате:
array2 = {Категория: «Балансовые предприятия», подкатегория: [{ имя: «test1»},{имя: «test2»}]}, { Категория: «Монетизация на основе рекламы», подкатегория: [{ имя: «Контент и информационные услуги»}]
Ответ №1:
Я думаю, что следующего должно быть достаточно для достижения того, чего вы хотите.
Как всегда, есть много оптимизированных способов сделать то же самое, но этого должно быть достаточно, чтобы вы начали, и вы можете подумать об оптимизации самостоятельно.
var array = [{ Category: "Ad-Based Monetization", SubCategory: "Content amp; Information Services"}, { Category: "Balance sheet businesses", SubCategory: "test1"}, { Category: "Balance sheet businesses", SubCategory: "test2"}]
var obj = {}
// Create a simple lookup with Category as key and SubCategories as value
array.forEach(arr => {
if(obj.hasOwnProperty(arr.Category)){
obj[arr.Category].push(arr.SubCategory);
} else {
obj[arr.Category] = [arr.SubCategory];
}
});
const final = []
// Loop over the obj created and format it into the desired structure
for (let Category in obj){
const SubCategory = obj[Category].map(name => ({name}));
final.push({Category, SubCategory})
}
console.log(final);