Maison  >  Article  >  interface Web  >  Comment fusionner des tableaux d'objets basés sur une propriété unique en JavaScript ?

Comment fusionner des tableaux d'objets basés sur une propriété unique en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 18:15:02863parcourir

How to Merge Arrays of Objects Based on a Unique Property in JavaScript?

Combinaison de tableaux basés sur des éléments uniques en JavaScript

La fusion de tableaux peut être une tâche courante en JavaScript, en particulier lorsqu'il est nécessaire de combiner des données basées sur critères précis. Dans ce cas particulier, l'objectif est de combiner un tableau d'objets basé sur une propriété lineNumber partagée, ce qui donne un tableau d'objets avec un lineNumber et un tableau de valeurs cellWidth correspondantes.

Pour y parvenir, les éléments suivants un extrait de code peut être utilisé :

var newCells = [];
for (var i = 0; i < totalCells.length; i++) {
    var lineNumber = totalCells[i].lineNumber;
    if (!newCells[lineNumber]) { // Add new object to result
        newCells[lineNumber] = {
            lineNumber: lineNumber,
            cellWidth: []
        };
    }
    // Add this cellWidth to object
    newcells[lineNumber].cellWidth.push(totalCells[i].cellWidth);
}

Décomposer le code :

  • Un nouveau tableau est initialisé en tant que newCells pour stocker les résultats fusionnés.
  • Le code parcourt le tableau totalCells à l'aide d'une boucle for.
  • Pour chaque objet dans totalCells, le lineNumber est extrait.
  • Une instruction if est utilisée pour vérifier si un objet avec le lineNumber actuel existe déjà dans nouvellesCellules. S'il n'existe pas, un nouvel objet avec le lineNumber et un tableau cellWidth vide est ajouté à newCells.
  • La valeur cellWidth de l'objet totalCells actuel est poussée vers le tableau cellWidth de l'objet correspondant dans newCells.

En suivant ces étapes, le code combine le tableau totalCells en newCells, où chaque objet a un lineNumber unique et un tableau de valeurs cellWidth correspondant à ce lineNumber.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn