Как найти элемент с массивом а затем добавить его элементы в правильно порядке в другой массив
есть обьект у которого ключ formatFields содержит массив:
{
formatFields: [
{name: 'item 14'},
{
groups: [
{name: 'item 12'},
{name: 'item 13'},
]
},
{name: 'item 17'},
]
}
мне нужно найти groups и получить его элементы чтобы окончательный результат был таким:
{
formatFields: [
{name: 'item 14'},
{name: 'item 12'},
{name: 'item 13'},
{name: 'item 17'},
]
}
Буду признателен за помощь если подскажите решение. Проблема с моим кодом что элементы с groups всегда добавляет в самый конец
formatFields.forEach((item) => {
if (typeIs(item, 'object') && hasOwnProps(item, 'group')) {
item.groups.forEach((elem) => {
formatFields.push(elem);
});
}
});
formatFields = formatFields.filter((item) => !hasOwnProps(item, 'group'));
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
var a = {
formatFields: [
{ name: 'item 14' },
{ groups: [
{ name: 'item 12' },
{ name: 'item 13' },
]
},
{ name: 'item 17' }
]
}
var ff = a.formatFields;
for (var i = 0; i < ff.length; i++) {
if (typeof ff[i] == 'object' && ff[i]['groups']) {
var groups = ff.splice(i, 1)[0].groups;
for (var j = 0; j < groups.length; j++) {
ff.splice(i + j, 0, groups[j]);
}
i = i + groups.length - 1;
}
}
console.log(a);