美文网首页
JS 数组去重

JS 数组去重

作者: Spidd | 来源:发表于2020-06-07 23:34 被阅读0次

只想写四个最简单的。

indexOf

Array.prototype.distinct1 = function () {
  return this.filter(function (element, index, self) {
    console.log(self.indexOf(element), index);
    return self.indexOf(element) === index;
  });
}

set

Array.prototype.distinct2 = function () {
  let set = new Set(this);
  return [...set];
}

利用对象的特性

Array.prototype.distinct3 = function () {
    let result = [];
    let obj = {};
    for (let x of this) {
        if (!obj[x]) {
            obj[x] = x;
            result.push(x);
        }
    }
    return result;
}

遍历 (不会产生新的数组)

Array.prototype.distinct4 = function () {
  let arr = this;
  let i = 0;
  //对数组进行去重
  for (i = 0; i < arr.length; ++i) {
    if (arr[i] === arr[i + 1]) {
      arr.splice(i, 1);
      //一旦相邻两个元素相等,外层循环的初始值从0开始
      i = -1;
    }
  }
  return arr;
}

相关文章

  • 数组的去重和数组中对象的去重

    数组中对象去重 方式1 jq方式 方式2 原生js方式 普通数组的去重 方式1 普通的数组去重js 方式2 Se...

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

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

  • js数组去重

    Set结构去重 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 向 Se...

  • JS数组去重

    方法1:两层for循环,外层循环原数组,内层循环时进行比较。 方法2:利用对象的属性不能相同的特点去重 方法3:利...

  • js数组去重

  • js数组去重

    1.利用对象的属性唯一性去重 2.利用es6的Set

  • js数组去重

  • js 数组去重

  • JS数组去重

    方法一:遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组 ...

  • js数组去重

    方法一 (es6 set方法,简单粗暴) 方法二 创建空数组,用indexOf方法检索,没有的话插入新数组中 方...

网友评论

      本文标题:JS 数组去重

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