首页 >web前端 >js教程 >如何在 JavaScript 中高效地从对象数组中检索唯一值?

如何在 JavaScript 中高效地从对象数组中检索唯一值?

Patricia Arquette
Patricia Arquette原创
2024-12-05 05:17:09667浏览

How to Efficiently Retrieve Unique Values from an Array of Objects in JavaScript?

从 JavaScript 中的对象数组中检索不同值

最佳方法

高效检索来自对象数组的唯一值,扩展运算符和 Set 数据结构的组合可以受雇。在 ES6 及更高版本的 JavaScript 中,强烈建议使用以下方法:

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]

此方法利用 Set 的强大功能来删除重复值,并利用扩展运算符从唯一值创建新数组。 map 函数迭代数组,仅提取年龄属性值以进行进一步处理。

替代数据结构

如果将数据构造为具有唯一性的对象数组首选 key,可以使用 Map 数据结构:

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]

在这种情况下,数据变量是一个具有唯一性的 Map键(例如“1”、“2”、“3”)和相应的对象值。为了检索不同的年龄,使用values属性创建一个值数组,然后将其映射以仅提取年龄属性值。

避免低效迭代

通过利用如上所述的 Set 数据结构或 Map 数据结构,无需迭代每个数组元素并检查现有值。这些数据结构本身就可以处理唯一性,从而提供更有效的解决方案,而不需要繁琐的迭代。

以上是如何在 JavaScript 中高效地从对象数组中检索唯一值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn