JavaScript:删除数组中所有重复的元素吗?

时间:2018-10-18 20:10:57

标签: javascript arrays duplicates

我有一个数组a = [1, 2, 3, 4, 5, 1, 2, 3]

如何获取数组b = [4, 5]。如何删除所有重复的元素?

2 个答案:

答案 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)