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
Libérer: 2024-12-22 01:56:12
original
342 Les gens l'ont consulté

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 }
];
Copier après la connexion

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

[17, 35]
Copier après la connexion

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))];
Copier après la connexion

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);
Copier après la connexion

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);
  }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal