删除数组Javascript中具有重复项的所有项
我在这里搜索了一下,没有找到解决办法。显然,如果我错了,我会被纠正的。我试图做的是返回数组中没有重复项的值 示例:删除数组Javascript中具有重复项的所有项,javascript,Javascript,我在这里搜索了一下,没有找到解决办法。显然,如果我错了,我会被纠正的。我试图做的是返回数组中没有重复项的值 示例: myArr=[2,1,2,3]//回答[1,3] myArr=[3,1,2,2,3]//回答[1] 我会发布一些代码,但我自己还没有弄明白这一点,我找到的唯一代码示例是删除任何重复值 上述可能的解决方案是不返回重复项。。。我试图返回没有重复项的值。一个选项是使用查找重复索引。考虑给定元素 e 和索引 i : 如果e是数组中两个相同元素的第一个,则indexOf(e)将返回i,ind
myArr=[2,1,2,3]//回答[1,3]
myArr=[3,1,2,2,3]//回答[1]
我会发布一些代码,但我自己还没有弄明白这一点,我找到的唯一代码示例是删除任何重复值
上述可能的解决方案是不返回重复项。。。我试图返回没有重复项的值。一个选项是使用查找重复索引。考虑给定元素<代码> e <代码>和索引<代码> i <代码>:
e
是数组中两个相同元素的第一个,则indexOf(e)
将返回i
,indexOf(e,i+1)
将返回第二个元素的索引e
是数组中两个相同元素的第二个,indexOf(e)
将返回第一个元素的索引,indexOf(e,i+1)
将返回-1
e
是唯一的元素,indexOf(e)
将返回i
,indexOf(e,i+1)
将返回-1
myArr.filter(function (e, i, a) {
return a.indexOf(e) === i && a.indexOf(e, i + 1) === -1
});
一个选项是使用查找重复索引。考虑给定元素<代码> e <代码>和索引<代码> i <代码>:
e
是数组中两个相同元素的第一个,则indexOf(e)
将返回i
,indexOf(e,i+1)
将返回第二个元素的索引e
是数组中两个相同元素的第二个,indexOf(e)
将返回第一个元素的索引,indexOf(e,i+1)
将返回-1
e
是唯一的元素,indexOf(e)
将返回i
,indexOf(e,i+1)
将返回-1
myArr.filter(function (e, i, a) {
return a.indexOf(e) === i && a.indexOf(e, i + 1) === -1
});
如果不是关联数组(您的案例):
如果不是关联数组(您的案例):
varyourArray=[1,2,1,3]
var uniqueValues = [];
$.each(yourArray, function (i, value) { //taking each 'value' from yourArray[]
if ($.inArray(value, uniqueValues) === -1) {
uniqueValues.push(value); // Pushing the non - duplicate value into the uniqueValues[]
}
});
console.log(uniqueValues);
结果:[1,2,3] varyourArray=[1,2,1,3]
var uniqueValues = [];
$.each(yourArray, function (i, value) { //taking each 'value' from yourArray[]
if ($.inArray(value, uniqueValues) === -1) {
uniqueValues.push(value); // Pushing the non - duplicate value into the uniqueValues[]
}
});
console.log(uniqueValues);
结果:[1,2,3] 可能重复:@42shadow42:但这不是唯一的;请看示例。如果我犯了错误,您希望删除副本的所有副本,但不是所有副本,而是感谢您纠正我的错误。尽管如此,请向我们展示您的尝试。
myArr.filter((x,i,a)=>a.indexOf(x)==a.lastinexof(x))
应该执行此操作可能的副本:@42shadow42:但这不是唯一的;请看示例。如果我犯了错误,您希望删除副本的所有副本,但不是所有副本,而是感谢您纠正我的错误。请显示您的尝试。myArr.filter((x,i,a)=>a.indexOf(x)==a.lastIndexOf(x))
应该这样做