js之数组去重

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)]
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容