数组去重

1、方法一  

  使用Set

  let  unique_1  =  arr => [...new Set(arr)];

2、方法二

  使用filter

  function unique_2(array) {

     var res = array.filter(function (item, index, array) {

      return array.indexOf(item) === index;

     })

    return res;

  }

3、方法三

  使用reduce

  let unique_3 = arr => arr.reduce((pre, cur) => pre.includes(cur) ? pre : [...pre, cur], []);

  等同于 

  let unique_3 = function(arr){

    return arr.reduce(function(a,b){

      return a.includes(b) ? a : [...a, b]

    },[])

  }

4、方法四

  创建一个空的对象

  function unique_4(array) {

    var obj = {};

    return array.filter(function (item, index, array) {

      return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)

    })

  }

5、方法五

  创建一个空数组,判断其中的成员是否重复

  function unique_5(array) {

    var arr = [];

    array.forEach(function (item, index, array) {

      arr = arr.includes(item) ? arr : [...arr, item]

    })

    return arr

  }

6、方法六

  function unique_6(array) {

    var obj = {};

    array.forEach(function (item, index, array) {

      obj[typeof(item) + item] = item

    })

    return Object.values(obj)

  }

你可能感兴趣的:(数组去重)