javascript数组去重

知识点:
1. indexOf() 返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到返回-1。需要注意的是**区分大小写**

"Blue Whale".indexOf("Blue"); // returns 0
"Blue Whale".indexOf("blue") // returns -1
"Blue Whale".indexOf("Whale", 5); // returns 5 

2. push() 向数组的末尾添加一个或多个元素,并返回新的长度。需要注意的是**新元素将添加在数组的末尾**,并且此方法**改变数组的长度**。

具体实现如下

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

3. 还可以用es6新增的Set来实现,Set是一种数据结构,它和数组非常相似,但是成员的值都是唯一的。我们可以先把它转化成Set,再配合...解构运算符重新转化为数组,达到去重的目的。

具体实现如下

const arr = [1, 1, 2, 2, 3, 4, 5, 5];
const arr_1 = [...new Set(arr)];
console.log(arr_1); // 输出[1, 2, 3, 4, 5]

 

posted @ 2017-06-28 10:54  前端老菜鸟  阅读(1922)  评论(0编辑  收藏  举报