【发布时间】:2020-08-11 16:59:28
【问题描述】:
这就是我将如何过滤一组数字以使其变得唯一:
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 循环。
非常感谢!
【问题讨论】:
-
你可以使用 .flat 将其展平,然后使用相同的
-
取决于你想要什么样的独特性。请显示预期的输出。我假设您正在检查数组是否相等,是吗?
-
arr = [[10,10],[8,8],[5,5],[5,5],[8,8],[7,7]]的预期结果是什么? -
@ggorlen, @hev1 这是预期的结果
uniqueArr =[[10,10],[8,8],[5,5],[7,7]] -
@HarmandeepSinghKalsi 谢谢,但我想保持嵌入式阵列的结构,但是平坦会失去它,对吗?
标签: javascript arrays filter