Maison >interface Web >js tutoriel >Comment extraire efficacement des valeurs de propriété uniques à partir d'un tableau d'objets JavaScript ?

Comment extraire efficacement des valeurs de propriété uniques à partir d'un tableau d'objets JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 12:56:11365parcourir

How to Efficiently Extract Unique Property Values from an Array of JavaScript Objects?

Récupérer efficacement des valeurs distinctes à partir de tableaux d'objets en JavaScript

Étant donné un tableau d'objets, la tâche consiste à extraire un nouveau tableau contenant uniquement les valeurs distinctes d'un objet spécifique propriété. Par exemple, considérons le tableau suivant :

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

L'objectif est d'obtenir un tableau contenant les âges distincts de ce tableau, ce qui donne :

[17, 35]

Solution itérative

Une approche simple consiste à parcourir les objets du tableau et à vérifier si l'âge de chaque objet existe dans le tableau de résultats. Sinon, l'âge est ajouté au tableau de résultats. Cette approche, bien que fonctionnelle, est inefficace en raison de sa dépendance à plusieurs itérations et comparaisons.

var distinct = []
for (var i = 0; i < array.length; i++)
    if (array[i].age not in distinct)
        distinct.push(array[i].age)

Solution optimisée utilisant ES6 Set

Pour une manipulation plus efficace, ES6 /ES2015 propose la structure de données Set, qui permet le stockage de valeurs uniques. Voici comment l'utiliser :

const data = [
  { "group": 'A', "name": 'SD' }, 
  { "group": 'B', "name": 'FI' }, 
  { "group": 'A', "name": 'MM' },
  { "group": 'B', "name": 'CO'}
];

const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']

En mappant le tableau d'objets sur un tableau de leurs valeurs de propriété souhaitées et en créant un ensemble à partir de celui-ci, nous éliminons les valeurs en double. Ensuite, la reconversion du Set en tableau à l'aide de l'opérateur de propagation (...) produit le résultat souhaité.

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