首页 > 解决方案 > 删除所有重复元素,我用 reduce 选择

问题描述

我想知道如何使用 reduce 消除我给它的所有重复元素

例子:

输入:

[1,2,4,5,5,5,6,6,7,7,7,7]
5

输出:

[1,2,4,6,6,7,7,7,7]

代码:

const num = 5
const arr = [1,2,4,5,5,5,6,6,7,7,7,7]
arr.reduce( (numberToDel) => {
       ...
})

标签: javascript

解决方案


在任何情况下,num都不能作为 array.reduce() 中的参数。

如果你绝对想用 array.reduce() 方法解决这个问题,
但更喜欢使用 array.filter() 方法。
都创建一个新数组

const
  num  = 5
, arr1 = [1,2,4,5,5,5,6,6,7,7,7,7]
, arr2 = arr1.reduce((a,c)=>
  {
  if ( c != num) a.push(c)
  return a
  },[])
  
console.log(JSON.stringify( arr2 ))

在“旧” JavaScript 中,这看起来像:

var num  = 5
var arr1 = [1,2,4,5,5,5,6,6,7,7,7,7]

var arr2 = arr1.reduce( myReduce, [] )

function myReduce( accumulator, currentValue )
  {
  if ( currentValue != num) accumulator.push( currentValue )
  return accumulator
  }

console.log(JSON.stringify( arr2 ))


推荐阅读