js之数组去重

2017-09-02  本文已影响0人  txwslyf

1.每次删除后面重复的元素

  function removeRepeat1(arr) {
    for (var i = 0; i < arr.length; i++) {
      for (var j = i + 1; j < arr.length; j++) {
        if (arr[i] === arr[j]) {
          arr.splice(j, 1);
          j--;
        }
      }
    }
  }

2.使用数组的indexOf()方法

  function removeRepeat2(arr) {
    var out = [], i;
    for (i = 0; i < arr.length; i++) {
      if (out.indexOf(arr[i]) === -1) {
        out.push(arr[i])
      }
    }
    return out
  }

3.观察数组该元素是否是第一次出现

  function removeRepeat3(arr) {
    return arr.filter(function (val, i) {
      return arr.indexOf(val) === i
    })
  }

4.利用Object

  function removeRepeat4(arr) {
    var n = {}, out = [];
    for (var i = 0; i < arr.length; i++) {
      if (!n[arr[i]]) {
        n[arr[i]] = true;
        out.push(arr[i])
      }
    }
    return out
  }

5.es6的set数据结构

  function removeRepeat5(arr) {
    return [...new Set(arr)]
  }
上一篇 下一篇

猜你喜欢

热点阅读