Maison >interface Web >js tutoriel >Comment extraire efficacement des valeurs de propriété uniques à partir d'un tableau d'objets 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!