Maison >interface Web >js tutoriel >Comment récupérer efficacement des valeurs uniques à partir d'un tableau d'objets en JavaScript ?
Récupération de valeurs distinctes à partir de tableaux d'objets en JavaScript
Approche optimale
Pour récupérer efficacement des valeurs uniques provenant d'un tableau d'objets, une combinaison de l'opérateur de propagation et de la structure de données Set peut être utilisée. Dans ES6 et les versions ultérieures de JavaScript, l'approche suivante est fortement recommandée :
const data = [ { name: "Joe", age: 17 }, { name: "Bob", age: 17 }, { name: "Carl", age: 35 } ]; const distinctAges = [...new Set(data.map(item => item.age))]; console.log(distinctAges); // [17, 35]
Cette approche utilise la puissance de Set pour supprimer les valeurs en double et l'opérateur de propagation pour créer un nouveau tableau à partir des valeurs uniques. La fonction map parcourt le tableau, extrayant uniquement les valeurs de la propriété age pour un traitement ultérieur.
Structure de données alternative
Si vous structurez les données sous la forme d'un tableau d'objets avec un les clés sont préférées, une structure de données Map peut être utilisée :
const data = new Map([ ["1", { name: "Joe", age: 17 }], ["2", { name: "Bob", age: 17 }], ["3", { name: "Carl", age: 35 }] ]); const distinctAges = [...data.values()].map(item => item.age); console.log(distinctAges); // [17, 35]
Dans ce scénario, la variable de données est une carte avec des clés uniques (par exemple, "1", "2", "3") et les valeurs d'objet correspondantes. Pour récupérer les âges distincts, la propriété values est utilisée pour créer un tableau de valeurs, qui sont ensuite mappées pour extraire uniquement les valeurs de la propriété age.
Évitement des itérations inefficaces
En tirant parti de la structure de données Set ou de la structure de données Map comme décrit ci-dessus, il devient inutile de parcourir chaque élément du tableau et de vérifier les valeurs existantes. Ces structures de données gèrent nativement l'unicité, offrant une solution plus efficace sans nécessiter d'itérations fastidieuses.
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!