Exemple de tableau sont comme ci-dessous: après la fusion résultat doit ressembler à: p>
3 Réponses :
Vous pouvez utiliser p> .ReRuce () code> pour réduire vos deux objets d'objets dans un objet, où la clé de l'objet est chaque
date code> et chaque
Date code> stocke une référence à l'objet entier. Toutefois, si une date répétée survient (c.-à-d. La date existe déjà dans l'objet accumulé), vous pouvez plutôt
.concat () code> le tableau sur la matrice déjà existante. Enfin, en utilisant le tableau de commande des dates Nous avons initialement créé, vous pouvez mapper votre objet résultant dans un tableau d'objets fusionnés, comme:
const aa = [{date: "sep", data:[1,2,3]}, {date: "oct", data:[4,5,6]}];
const bb = [{date: "oct", data:[1,2,3]}, {date: "nov", data:[40,50,60]}, {date: "dec", data:[41,51,61]}];
const merged = [...aa, ...bb];
const order = [...new Set(merged.map(({date}) => date))];
const mergedObj = merged.reduce((acc, {date, data, ...rest }) => {
acc[date] = acc[date] || {date, ...rest, data: []};
acc[date].data = acc[date].data.concat(data);
return acc;
}, {});
const res = order.map(key => mergedObj[key]);
console.log(res);
Vous pouvez le faire en une seule à la boucle.
const aa = [{date: "sep", data:[1,2,3]}, {date: "oct", data:[4,5,6]}]; const bb = [{date: "oct", data:[1,2,3]}, {date: "nov", data:[40,50,60]}, {date: "dec", data:[41,51,61]}]; let tempArr = aa; bb.forEach(rec => { let findIndex = tempArr.findIndex(obj => obj.date == rec.date); if(findIndex==-1){ tempArr.push(rec); } else { tempArr[findIndex].data = tempArr[findIndex].data.concat(rec.data); } }); console.log(tempArr);
Vous pouvez prendre un p> Plan
et groupe par Date code> et obtenez de nouveaux objets comme jeu de résultats.
.as-console-wrapper { max-height: 100% !important; top: 0; }
Juste boucle. Montrez votre code.