Maison >interface Web >js tutoriel >Comment extraire des âges uniques d'un tableau d'objets en JavaScript ?

Comment extraire des âges uniques d'un tableau d'objets en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-22 01:56:12417parcourir

How to Extract Unique Ages from an Array of Objects in JavaScript?

Extraire des valeurs distinctes d'un tableau d'objets en JavaScript

Considérons un tableau d'objets où chaque objet représente un individu avec un nom et un âge :

var array = [
    { "name": "Joe", "age": 17 },
    { "name": "Bob", "age": 17 },
    { "name": "Carl", "age": 35 }
];

La tâche consiste à extraire des âges distincts de ce tableau, ce qui donne lieu à un nouveau tableau avec des valeurs :

[17, 35]

Solution spécifique à JavaScript (ES6 et versions ultérieures)

ES6 introduit la structure de données Set, qui maintient automatiquement une collection de valeurs uniques. Cela peut être utilisé pour extraire efficacement des âges distincts :

const distinctAges = [...new Set(array.map(object => object.age))];

Cette approche crée un nouveau tableau qui inclut uniquement les valeurs uniques présentes dans la propriété age de chaque objet du tableau d'origine.

Structures de données alternatives

Si les performances sont primordiales, vous pouvez envisager des structures de données alternatives, telles qu'une carte ou un objet :

const ageMap = {};
array.forEach(object => {
  ageMap[object.age] = true;
});

const distinctAges = Object.keys(ageMap).map(Number);

Dans Dans ce scénario, les valeurs d'âge sont stockées sous forme de clés dans un objet (carte). La méthode Object.keys() récupère les clés uniques (valeurs d'âge) sous forme de tableau, qui est ensuite converti en valeurs numériques à l'aide de map(Number).

Méthode améliorée

La méthode d'itération initiale présenté dans la question peut être amélioré en utilisant la méthode include() pour vérifier les valeurs en double :

var distinct = [];
for (var i = 0; i < array.length; i++) {
  if (!distinct.includes(array[i].age)) {
    distinct.push(array[i].age);
  }
}

Cette optimisation réduit le nombre de comparaisons requises en évitant plusieurs vérifications des doublons âges.

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