首页 >web前端 >js教程 >如何有效地从 JavaScript 对象数组中提取唯一属性值?

如何有效地从 JavaScript 对象数组中提取唯一属性值?

Barbara Streisand
Barbara Streisand原创
2024-12-03 12:56:11365浏览

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

在 JavaScript 中从对象数组中高效检索不同值

给定一个对象数组,任务是提取一个仅包含特定对象的不同值的新数组财产。例如,考虑以下数组:

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

目标是从该数组中获取包含不同年龄的数组,从而产生:

[17, 35]

迭代解决方案

一种简单的方法是迭代数组中的对象并检查结果数组中是否存在每个对象的年龄。如果不是,则将年龄添加到结果数组中。这种方法虽然实用,但由于依赖多次迭代和比较,效率较低。

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

使用 ES6 Set 的优化解决方案

为了更高效的处理,ES6 /ES2015 提供了 Set 数据结构,可以存储唯一值。以下是如何利用它:

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']

通过将对象数组映射到其所需属性值的数组并从中创建一个 Set,我们消除了重复值。然后,使用扩展运算符 (...) 将 Set 转换回数组会产生所需的结果。

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

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