Есть массив
const docs = [
{type: 'ps', number: '123456'},
{type: 'psp', number: '223456'},
{type: 'psp', number: '423456'},
{type: 'vul', number: '823456'},
];
Как его привести к виду
{
ps: [
{number: '123456'}
],
psp: [
{number: '223456'},
{number: '423456'},
],
vul: [
number: '823456'
]
}
Вариант с reduce:
const docs = [
{type: 'ps', number: '123456'},
{type: 'psp', number: '223456'},
{type: 'psp', number: '423456'},
{type: 'vul', number: '823456'},
];
let newdocs = docs.reduce((prev, item) => {
let type = item.type;
prev[type] = prev[type] || [];
prev[type].push({number : item.number})
return prev;
}, {});
console.log(newdocs);
const docs = [
{type: 'ps', number: '123456'},
{type: 'psp', number: '223456'},
{type: 'psp', number: '423456'},
{type: 'vul', number: '823456'},
];
var newdocs = [], i;
for(i=0; i<docs.length; i++) {
if(!(docs[i].type in newdocs)) {
newdocs[docs[i].type] = [{number: docs[i].number}];
} else {
newdocs[docs[i].type].push({number: docs[i].number});
}
}
console.log(newdocs.psp[1].number); // 423456
const docs = [
{type: 'ps', number: '123456'},
{type: 'psp', number: '223456'},
{type: 'psp', number: '423456'},
{type: 'vul', number: '823456'},
];
var newObj = {}; // создаем пустой объект
for (key in docs) { // пробегаемся по массиву
if (!newObj[docs[key].type]) { // если еще нету поля
newObj[docs[key].type] = []; // создаем его и иницализируем пустой массив
}
newObj[docs[key].type].push({number: docs[key].number}); // заполняем поле number'ом
}
console.log(newObj);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости