数组去重

数组去重的两种方法

一、利用数组的indexOf方法实现

原理:数组的indexOf(a);方法会返回字符a所在数组中的位置。当返回-1时,代表数组中不存在a这个字符;

var str = [1,2,2,2,3,4,5,5,6,7];
var backStr = [];
for(var i=0;i<str.length;i++){
	if( backStr.indexOf(str[i]) < 0 ){
		backStr.push(str[i]);
	}
} 
console.log(backStr);//1,2,3,4,5,6,7

缺点:性能上不是很好,需要使用for循环去遍历数组再添加;

二、使用ES6中set()和Array.from()方法

原理:set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目.

var str = [1,2,2,2,3,4,5,5,6,7];
console.log(new Set(str));//{1,2,3,4,5,6,7}

直接使用set方法返回的是一个对象;
最后我们要的是返回数组,所以需要使用Array.from()将对象转化成数组;

var str = [1,2,2,2,3,4,5,5,6,7];
console.log(Array.from(new Set(str)));//[1,2,3,4,5,6,7]
posted @ 2017-04-23 15:38  人二衣羊  阅读(162)  评论(0编辑  收藏  举报