美文网首页
最基本的去重方法

最基本的去重方法

作者: 九四年的风 | 来源:发表于2018-07-08 12:33 被阅读17次

思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。

var arr1=[1,2,3,2,1];
function unique1(arr){
  var res = [arr1[0]];
  for(var i=1;i<arr1.length;i++){
    var repeat = false;
    for(var j=0;j<res.length;j++){
      if(arr1[i] == res[j]){
        repeat = true;
        break;
      }
    }
    if(!repeat){
      res.push(arr1[i]);
    }
  }
  return res;
}
console.log(unique1(arr1));

先排序在去重
思路:先将原数组排序,在与相邻的进行比较,如果不同则存入新数组

var arr2=[1,2,3,2,1];
function unique2(arr){
  var arr2 = arr.sort();
  var res = [arr2[0]];
  for(var i=1;i<arr2.length;i++){
    if(arr2[i] !== res[res.length-1]){
      res.push(arr2[i]);
    }
  }
  return res;
}
console.log(unique2(arr2));

利用对象的属性去重(推荐)
思路:每次取出原数组的元素,然后再对象中访问这个属性,如果存在就说明重复

var arr3=[1,2,3,4,5,4,3,2,1];
function unique3(arr3){
  var res =[];
  var json = {};
  for(var i=0;i<arr3.length;i++){
    if(!json[arr3[i]]){
      res.push(arr3[i]);
      json[arr3[i]] = 1;
    }
  }
  return res;
}
console.log(unique3(arr3));

利用下标查询

var arr4=[1,2,3,4,5,4,3,2,1];
function unique4(arr){
  var newArr = [arr4[0]];
   for(var i=1;i<arr4.length;i++){
    if(newArr.indexOf(arr4[i]) == -1){
   newArr.push(arr4[i]);
   }
}
return newArr;
}
console.log(unique4(arr4));

ES6的方法

let arr1=([1,1,2,3]);
let newArr1=Array.from(new Set(arr1));
console.log(newArr1);

let arr2 = [1,2,3,3];
let newArr2 = [...new Set(arr2)];
console.log(newArr2);

let arr3 = [1, 2, 3, 2, 1];
function newArr3(arr3){
return Array.from(new Set(arr3));
}
console.log(newArr3(arr3));

相关文章

  • 最基本的去重方法

    思路:定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。 va...

  • 2018-05-09数组去重函数

    数组去重 双循环去重 indexOf方法去重1 indexOf方法去重2 相邻元素去重 利用对象属性去重 set与...

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js算法题

    1.数组去重 方法一:利用嵌套for循环和splice去重 方法二:利用indexOf去重 方法三:利用Set集合...

  • 数组去重

    数组去重的方法:通过直接方法去重、通过对象的属性具有唯一性去重、通过索引值去重、先排序在去重 案例: (1)索引去...

  • List数据去重的五种有效方法

    List数据去重的五种有效方法 List去重5种方法

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

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

  • 数组去重的方法

    Methods 1:定义一个新数组,并存放原数组的第一个元素,然后将元素组和新数组的元素对比,若不同则存放在新数组...

  • 数组去重的方法

    兼容所有浏览器的方式 使用forEach和indexOf

  • 数组去重的方法

    方案一:遍历数组中的每一项,拿每一项和它后面的项依次比较,如果相同了,则把相同的这一项在原来数组中删除 方案二:利...

网友评论

      本文标题:最基本的去重方法

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