zoukankan      html  css  js  c++  java
  • 去重

    利用 ES6 Set 去重

    function unique(arr) {
      return Array.from(new Set(arr))
    }
    let arr = [1, 2, 3, 4, 5, 1, 2, 3]
    console.log(unique(arr))
    // [1, 2, 3, 4, 5]
    

    利用当前项和剩余项比较去重

    方法较多,这里用比较典型的indexOf()方法

    function unique(arr) {
      let newArr = []
      for (let i = 0; i < arr.length; i++) {
        let current = arr[i]
        let residue = arr.slice(i + 1)
        if (residue.indexOf(current) === -1) {
          newArr.push(current)
        }
      }
      return newArr
    }
    let arr = [1, 2, 3, 4, 5, 1, 2, 3]
    console.log(unique(arr))
    // [4, 5, 1, 2, 3]
    

    先排序,再进行遍历及相邻元素比对去重

    function unique(arr) {
      arr.sort((a, b) => a - b)
      let newArr = [arr[0]]
      for (let i = 1; i < arr.length; i++) {
        if (arr[i] !== arr[i - 1]) {
          newArr.push(arr[i])
        }
      }
      return newArr
    }
    let arr = [1, 2, 3, 4, 5, 1, 2, 3]
    console.log(unique(arr))
    // [4, 5, 1, 2, 3]
    

    利用对象的属性不能相同的特点进行去重

    function unique(arr) {
      let obj = {}
      let newArr = []
      for (let i = 0; i < arr.length; i++) {
        current = arr[i]
        if (!obj[current]) {
          obj[current] = 1
          newArr.push(current)
        }
      }
      return newArr
    }
    let arr = [1, 2, 3, 4, 5, 1, 2, 3]
    console.log(unique(arr))
    // [1, 2, 3, 4, 5]
    
  • 相关阅读:
    php
    图片拖拽
    12.20
    正则详细讲解
    12.19
    正则
    闭包
    date类
    二分查找
    冒泡排序
  • 原文地址:https://www.cnblogs.com/cqkjxxxx/p/13493979.html
Copyright © 2011-2022 走看看