gpt4 book ai didi

javascript - 过滤 JavaScript 中的数组数组以使其变得唯一

转载 作者:行者123 更新时间:2023-12-04 09:10:16 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Map/Set to maintain unique array of arrays, Javascript

(5 个回答)


去年关闭。




这就是我如何过滤一组数字以使其变得唯一:

const unique = (value, index, self) => {
return self.indexOf(value) === index
}

const costs = [10, 8, 5, 5, 8, 7]
const uniqueCosts = costs.filter(unique)

console.log(uniqueCosts) // [10,8,5,7]
我怎么能过滤一个数组数组是唯一的: arr = [[10,10],[8,8],[5,5],[5,5],[8,8],[7,7]] -> uniqueArr =[[10,10],[8,8],[5,5],[7,7]] 我已经考虑创建一个新的 Set()这在一个简单的数组中再次工作得很好,但是 .add即使数组已经在集合中,集合的函数似乎也将数组添加到集合中。
任何帮助将不胜感激,我正在寻找一个简单的解决方案,使用 JavaScript 中现有函数的强大功能而不涉及 for/while循环。
非常感谢!

最佳答案

你可以拿一个 Set具有序列化功能,用于获取没有不同对象引用的字符串。

const
serialize = v => JSON.stringify(v),
unique = array => array.filter((s => v => (t => !s.has(t) && s.add(t))(serialize(v)))(new Set));

console.log(unique([10, 8, 5, 5, 8, 7]));
console.log(unique([[10, 10], [8, 8], [5, 5], [5, 5], [8, 8], [7, 7]]));
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 过滤 JavaScript 中的数组数组以使其变得唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63362927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com