首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:是否删除数组中所有重复的元素?

JavaScript:是否删除数组中所有重复的元素?
EN

Stack Overflow用户
提问于 2018-10-19 04:10:57
回答 2查看 68关注 0票数 -1

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-19 04:25:53

需要循环遍历它,看看它是否存在。最简单的方法是对它的邻居进行排序和查看。

代码语言:javascript
复制
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);

另一种解决方案是查看索引而不排序

代码语言:javascript
复制
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)

票数 0
EN

Stack Overflow用户

发布于 2018-10-19 04:28:57

通过过滤索引与上一个索引不同的索引;

代码语言:javascript
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52881796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档