一个数组去重的简单实现

var arr = ['abc','abcd','sss','2','d','t','2','ss','f','22','d'];
//定义一个新的数组
var s = [];
//遍历数组
for(var i = 0;i<arr.length;i++){
    if(s.indexOf(arr[i]) == -1){  //判断在s数组中是否存在,不存在则push到s数组中
        s.push(arr[i]);
    }
}
console.log(s);
//输出结果:["abc", "abcd", "sss", "2", "d", "t", "ss", "f", "22"]

关于indexOf()方法:

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

stringObject.indexOf(searchvalue,fromindex)

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

如果在数组中没找到字符串则返回 -1。

关于push()方法:

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

注意: 新元素将添加在数组的末尾。

注意: 此方法改变数组的长度。

利用ES6的set

Set数据结构,它类似于数组,其成员的值都是唯一的。

利用Array.from将Set结构转换成数组

  1. function dedupe(array){  
  2.  return Array.from(new Set(array));  
  3. }  
  4. dedupe([1,1,2,3]) //[1,2,3]  

拓展运算符(...)内部使用for...of循环

  1. let arr = [1,2,3,3];  
  2. let resultarr = [...new Set(arr)];   
  3. console.log(resultarr); //[1,2,3]  

猜你喜欢

转载自blog.csdn.net/bujiongdan/article/details/82735556
今日推荐