从 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中文网其他相关文章!