简单的解决方案是删除 JS 数组中的重复项。必须使用 push 或 pop 和 forEach
2020-03-16
561
所以,我还在学习,所以请原谅它的简单性。但我正在尝试编写一个名为 uniq(arr) 的函数。如果它有效,它将返回一个没有任何重复值的新数组。它不应该更改原始数组。
这里有两个当前不起作用的测试调用。我不确定错误意味着什么 > uniq([1, 2, 3]) 预期:[1, 2, 3] 但得到:
TypeError: undefined is not an object (evaluating 'copy.includes')
> uniq(['a', 'a', 'b']) 预期:['a', 'b'] 但得到:TypeError:undefined 不是对象(评估“copy.includes”)
function uniq(arr) {
var copy;
arr.forEach(function(item) {
if (!copy.includes(item)) {
push.copy(item);}})
return copy
}
2个回答
Set
使数组唯一。
const unique = (arr) => {
return [... new Set(arr)];
}
console.log(unique([1, 2, 3, 3, 2, 5]))
// Output: [1, 2, 3, 5]
Sajeeb Ahamed
2020-03-16
您的代码有2个问题。 初始错误来自没有值的复制。您需要给它一个空数组的值,以便能够在其上调用数组方法,例如
618649632
第二个错误是您如何使用
push
063521981
修复这些工作示例
110442630
Oliver
2020-03-28