Javascript 删除阵列中的重复项
这不起作用:Javascript 删除阵列中的重复项,javascript,duplicates,Javascript,Duplicates,这不起作用: result = [1, 4, 5, 5, 5]; var newData = result.reduce(function(acc, cur) { if (cur in acc === false) { acc.push(cur); } return acc; },[]); console.log(newData); 输出: [1, 4, 5, 5, 5] 我知道一种可行的方法,比如用以下代码替换if()条件: if (acc.length == 0 || acc[a
result = [1, 4, 5, 5, 5];
var newData = result.reduce(function(acc, cur) {
if (cur in acc === false) {
acc.push(cur);
}
return acc;
},[]);
console.log(newData);
输出:
[1, 4, 5, 5, 5]
我知道一种可行的方法,比如用以下代码替换if()
条件:
if (acc.length == 0 || acc[acc.length-1] !== cur) {
acc.push(cur);
}
其中给出了预期输出:
[1, 4, 5]
我的问题是为什么第一种方法不起作用
如果指定的属性位于指定的对象或其原型链中,in运算符将返回true
对于结果
中的每个值,它都返回false
。因此,您将在累加器中获得结果的所有值。对于数组,中的检查索引
var结果=[1,4,5,5,5];
var newData=结果减少(函数(acc、cur){
if(acc中的当前===假){
acc.push(当前);
}
返回acc;
},[]);
console.log(newData)代码>(即检查密钥是否存在)。
中的不起作用。您可以尝试将以下内容更改为:acc中的cur===false
:acc.indexOf(cur)==-1
。