Javascript 从数组中排除重复项

Javascript 从数组中排除重复项,javascript,Javascript,我试图从数组中排除重复的数字。例如:如果我过滤[1,2,2,3,5,5]的数组,则输出应为[1,3] function unique(arr) { let sortArr = arr.sort() let res = [] for (let i = 0; i < arr.length; i++) { if (sortArr[i] != sortArr[i + 1]) { res.push(sortArr[i]) } } return res

我试图从数组中排除重复的数字。例如:如果我过滤[1,2,2,3,5,5]的数组,则输出应为[1,3]

function unique(arr) {
  let sortArr = arr.sort()
  let res = []
  for (let i = 0; i < arr.length; i++) {
    if (sortArr[i] != sortArr[i + 1]) {
      res.push(sortArr[i])
    }
  }
  return res
}

console.log(unique([1, 2, 2, 3, 5, 5]))
功能唯一性(arr){
设sortArr=arr.sort()
让res=[]
for(设i=0;i

我试图不向数组中添加重复的数字,但我得到的不是[1,3],而是[1,2,3,5]

最简单的调整是检查下一个元素和前一个元素是否都不等于当前元素:

功能唯一性(arr){
设sortArr=arr.sort()
让res=[]
for(设i=0;iconsole.log(唯一([1,2,2,3,5,5]))
使用
Array.reduce
,您可以获得每个项目的重复计数,并且基于该数据,只能按如下方式获得非重复值

功能唯一性(arr){
const groupBy=arr.reduce((acc,cur)=>{
acc[cur]?acc[cur]++:acc[cur]=1;
返回acc;
}, {});
返回Object.entries(groupBy)
.filter(([key,value])=>value==1)
.map(([key])=>+key);
}

log(惟一的([1,2,2,3,5,5])计算值的数量并仅返回等于1的值

函数唯一(数组){
var map=newmap();
array.forEach(a=>map.set(a,(map.get(a)| | 0)+1));
返回array.filter(a=>map.get(a)==1);
}

log(惟一的([1,2,2,3,5,5])这是否回答了您的问题?事实上,是的。谢谢这是一种更优雅的方式,但我也喜欢下面发布的@CertainPerformance的方式。