美文网首页
查找数组重复元素的方法以及数组去重

查找数组重复元素的方法以及数组去重

作者: AuraAura | 来源:发表于2021-09-03 10:28 被阅读0次
function duplicates(arr) {
    var temp = arr.filter(function(item,i){
          return arr.indexOf(item)!== i;
     })
    return temp
}
//输入[1, 2, 4, 4, 3, 3, 1, 5, 3]
//输出[1,3,3,4]

该方法可以查询重复元素,但元素重复次数超过两次以上就会输出多个重复元素

1、使用 reduce 和 includes

function unique(array) {
  return array.reduce(function (pre, item) {
    return pre.includes(item) ? pre : pre.concat(item);
  }, []);//第二个参数为[ ]要设置初始值,不然会从index1开始遍历
}
var array = [1, 5, 2, 3, 4, 2, 3, 1, 3, 4];
unique(array);

2、使用 set 去重

var array = [1, 5, 2, 3, 4, 2, 3, 1, 3, 4];
var newArr = [...new Set(array)];
console.log(newArr); //[1, 5, 2, 3, 4]

3、使用map去重

function unique (arr) {
    let map = new Map()
    let array = new Array()  // 数组用于返回结果
    for (let i = 0; i < arr.length; i++) {
        if (map.has(arr[i])) {  // 如果有该key值
            map.set(arr[i], true)
        } else {
            map.set(arr[i], false)   // 如果没有该key值
            array.push(arr[i])
        }
    }
    return array
}
var array = [1, 5, 2, 3, 4, 2, 3, 1, 3, 4];
unique(array);

补充关于reduce用法

array.reduce(callback, [initialValue])
array.reduce((previousValue, currentValue, index, array) => { }, [initialValue])

其中 callback 函数有四个参数

  • previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
  • currentValue (数组中当前被处理的元素)
  • index (当前元素在数组中的索引)
  • array (调用 reduce 的数组)
    initialValue 为可选参数,第一次调用 callback 函数时的初始值,注意 如果不设置 initialValue,reduceh 会从索引 index 1 的开始执行,如果设置初始值 从索引 0 开始
    未设置初始值index始终从1开始.png
    数组去重正确用法.png

相关文章

  • js数组去重查重

    数组去重 查找重复元素

  • 查找数组重复元素的方法以及数组去重

    该方法可以查询重复元素,但元素重复次数超过两次以上就会输出多个重复元素 1、使用 reduce 和 include...

  • javascript中的数组操作

    如何判断一个对象是不是数组? 数组去重 找出数组中出现最多的元素,以及出现的次数 该方法同样可以用于字符串的查找 ...

  • 常见JS编程题

    1、查找数组中重复元素 方法1:创建一个新的临时数组来保存数组中已有的元素 方法2: 使用indexOf判断数组元...

  • 怎么用函数封装数组去重?

    数组去重, 意思就是把数组中重复的元素去掉 利用es5中的方法indexOf去重 indexOf()作用:判断某个...

  • js 数组操作

    1 数组去重 通过set 没有重复元素去重 2 通过修改数组长度 删除元素 3 数组尾部追加元素 4 数组尾部移...

  • js手写数组去重

    javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重 ...

  • Javascript 数组去重

    数组去重 数组去重,一般需求是给你一个数组,调用去重方法,返回数值副本,副本中没有重复元素。一般来说,两个元素通过...

  • 数据结构和算法面试题整理

    #数组 - [查找数组中第二小的元素] - [查找第一个没有重复的数组元素] - [合并 2 个排序好的数组] -...

  • 数组:扁平化、去重、深拷贝

    数组扁平化 数组去重 1、ES6 Set 去重 利用对象的属性不会重复这一特性,校验数组元素是否重复 深拷贝

网友评论

      本文标题:查找数组重复元素的方法以及数组去重

      本文链接:https://www.haomeiwen.com/subject/vyqpcltx.html