我有一个数组a = [1, 2, 3, 4, 5, 1, 2, 3]
如何获取数组b = [4, 5]
。如何删除所有重复的元素?
答案 0 :(得分:0)
需要循环查看它是否存在。最简单的方法是排序并查看其邻居。
var nums = [1, 2, 3, 4, 5, 1, 2, 3];
var noDupes = nums.slice().sort() //sort it so numbers line up
.reduce(function(result, c, i, arr){ //loop over the set
if (c !== arr[i+1] && c !== arr[i-1]) { //see if number is before or after
result.push(c) //if not, than add it
}
return result
}, [])
console.log(noDupes);
var noDupes2 = nums.slice().sort()
.filter((c, i, arr) => c !== arr[i+1] && c !== arr[i-1])
console.log(noDupes2);
另一种解决方案是不进行排序就查看索引
var nums = [1, 2, 3, 4, 5, 1, 2, 3];
var noDupes = nums.filter(( c, i, arr) => arr.indexOf(c) === arr.lastIndexOf(c))
console.log(noDupes)
答案 1 :(得分:0)
通过过滤索引与上一个索引不同的索引
a = [1, 2, 3, 4, 5, 1, 2, 3];
//console.log(a);
b = a.filter((value) => a.indexOf(value) == a.lastIndexOf(value));
console.log(b)