有谁知道如何删除包含原始值的数组中的重复值?我遇到了不同的片段,如this 和this等,但没有特别说明的是同时删除原始节点。小心分享一个小片段? TIA!JS:删除数组中的重复值,包括原始数据
例子:
[1, 1, 2, 3, 5, 5] -> [2, 3]
有谁知道如何删除包含原始值的数组中的重复值?我遇到了不同的片段,如this 和this等,但没有特别说明的是同时删除原始节点。小心分享一个小片段? TIA!JS:删除数组中的重复值,包括原始数据
例子:
[1, 1, 2, 3, 5, 5] -> [2, 3]
你可以尝试基于该阵列中的特定值出现的次数过滤你的数组:
var arr = [1, 1, 2, 3, 5, 5]
var res = arr.filter((el, _, arr) => {
return arr.filter(el2 => el2 === el).length === 1
})
console.log(res)
$(function() {
var array = [1, 2, 3, 4, 5, 6, 6 ,6 ]
console.log(removeDuplicate(array, 6))
});
function removeDuplicate(original, val) {
if(!val) return original
var filtered = _.filter(original, function(num){ return num != val; });
return filtered
}
<script src="http://underscorejs.org/underscore.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您可以使用检查索引和最后的索引。
var arr = [1, 1, 2, 3, 5, 5],
res = arr.filter((a, _, aa) => aa.indexOf(a) === aa.lastIndexOf(a));
console.log(res);
你也可以做如下;
function removeDuplicates(a){
return a.sort((a,b) => a - b)
.reduce((p,c,i,a) => c === a[i-1] || c === a[i+1] ? p : p.concat(c),[]);
}
var arr = [5,3,2,7,6,6,9,2,4,6,0,8,1,3,8,8,3];
console.log(removeDuplicates(arr))
哇,这是快!非常感谢哥们,感谢它! – OneLazy
:)你非常欢迎! –
虽然我建议接受@ nina-scholz的解决方案,但它更快,更优雅...... –