美文网首页
数组-去重

数组-去重

作者: 有灵魂 | 来源:发表于2019-04-09 19:17 被阅读0次

1、ES6: new Set() Set对象是值的集合,里面的元素唯一,不能去除空对象{}; 2、indexOf 3、includes 4、sort 5、splice()

1、new Set()

    let arr = [1, 2, 2, 'a', 'a', 3, null, null, undefined, undefined, NaN, NaN, {}, {}]
    let arr1 = Array.from(new Set(arr))
    // let arr1 = [...new Set(arr)]
    console.log(arr1); //  [1, 2, "a", 3, null, undefined, NaN, {}, {}]

2、indexOf() 不能去除空对象{} 和 NaN

    let arr = [1, 2, 2, 'a', 'a', 3, null, null, undefined, undefined, NaN, NaN, {}, {}]
    function unique(arr) {
      let arr1 = []
      arr.forEach(item => {
        arr1.indexOf(item) === -1 && arr1.push(item)
      })
      return arr1
    }
    console.log(unique(arr)); // [1, 2, "a", 3, null, undefined, NaN, NaN, {}, {}]

3、includes()

    let arr = [1, 2, 2, 'a', 'a', 3, null, null, undefined, undefined, NaN, NaN, {}, {}]
    function unique(arr) {
      let arr1 = []
      arr.forEach(item => {
        !arr1.includes(item) && arr1.push(item)
      })
      return arr1
    }
    console.log(unique(arr)); // [1, 2, "a", 3, null, undefined, NaN, {}, {}]

4、sort() 排序后,相邻元素比较

    let arr = [1, 2, 2, 'a', 'a', 3, null, null, undefined, undefined, NaN, NaN, {}, {}]
    function unique(arr) {
      let arr1 = arr.sort()
      let array =[arr1[0]]
      for (let i = 1;i < arr1.length;i++) {
        if (arr1[i] !== arr1[i-1]) {
          array.push(arr1[i])
        }
      }
      return array
    }
    console.log(unique(arr)); // [1, 2, 3, NaN, NaN, {}, {}, "a", null, undefined]

5、splice() 两个for循环,

    let arr = [3, 3, 3, 'a', 'a', 3, null, null, undefined, undefined, NaN, NaN, {}, {}]
    function unique(arr) {
      for (let i = 0;i < arr.length; i++) {
        for (let j = i + 1;j < arr.length; j++) {
          if (arr[i] === arr[j]) {
            arr.splice(j, 1) // 第二个和第一个相同,删除第二个,第二次遍历索引值必需减1,再次比较
            j--
          }
        }
      }
      return arr
    }
    console.log(unique(arr));

相关文章

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 实现数组去重有哪些方式

    简单的数组去重 数组对象去重

  • 数组去重的四种方法

    利用双for循环去重 利用对象数组去重 利用对象数组去重并且记录重复次数 通过创建一个新数组进行数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • javascript数组去重,数组对象去重

    利用Reduce去重 function unique(arr) {var obj = {};arr = arr.r...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • 数组去重

    传统方法 ES6 扩展 传统方法 最后再写到 Array.prototype 原型中

  • 数组去重

    老题了。。虽然网上一搜一大堆,还是自己想了想,自己动笔写了几种。

网友评论

      本文标题:数组-去重

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