J'ai un tableau d'objets
const mainArray = [{
name: 'main name',
id: 'main id',
parent: [{
name: 'parent name',
id: '1'
}],
child: [{
name: 'child name',
id: 'child id'
}]
}, {
name: 'main name 2',
id: 'main id 2',
parent: [{
name: 'parent name',
id: '1'
}],
child: [{
name: 'child name 2',
id: 'child id 2'
}]
},
{
name: 'main name 3',
id: 'main id 3',
parent: [{
name: 'parent name something else',
id: '2'
}],
child: [{
name: 'child name 3',
id: 'child id 3'
}]
}
]
Je dois l'amener à ce formulaire
const resultArray = [{
key: 'main',
title: 'main name',
}, {
key: 'parent',
title: 'parent name'
}, {
key: 'child',
title: 'child name'
}]
Jusqu'à présent, j'ai obtenu ceci
if (mainArray) {
mainArray.map((main) => {
if (main.child && main.child.length) {
if (main.parent && main.parent.length) {
main.parent.map((item) => {
data.push({
key: 'parent',
title: item.name
});
});
}
data.push({
key: 'main',
title: main.name
});
main.child.map((item) => {
data.push({
key: 'child',
title: item.name
});
});
}
});
}
Et puis je prends ça data array
pour afficher si un tableau et il ressemble à ceci
Mon problème est que - deux mains
peuvent être différentes mais avoir la même parent
(les parents ont le même ids
) et ainsi je n'ai pas besoin d'ajouter le parent au tableau deux fois, et j'ai besoin qu'il soit affiché comme ceci
Donc je cherche un moyen de si deux parents
les objets ont le même id
pour les fusionner afin que dans le tableau final il n'y ait qu'un seul parent
et le main
et le child
de ce parent sont collés à un parent
au lieu de deux identiques
Ici, le lien à jsfiddle
Je peux utiliser lodash