javascript数组去重的几种方法

1.利用ES6的Set集合进行去重:

Array.prototype.distinct = function(){
   let arr = this;
   return Array.from(new Set(arr));
}
let testArr = [1,1,1,2,2,3,3];
testArr.distinct();//[1,2,3]

2.通过splice去重:

通过双层循环,两两比较值,如果值相同就把这个元素删掉,注意由于splice会影响数组的结构,所以删除后对应数组长度也应该减去1;js代码如下:

Array.prototype.distinct = function() {
	var arr = this;
	var i,
	 	j,
	 	len=arr.length;
	 	for(i=0;i

3.借助对象属性的唯一性,通过把数组的值作为属性,去进行遍历判断,如果属性相同则跳过,不同则加入新的数组里,js代码如下:

Array.prototype.distinct = function() {
	// body...
	var arr = this;
	var i,
	 	j,
	 	obj={},
	 	arrNew=[],
	 	len=arr.length;
	 	for(i=0;i

注意:以上方法都不能去重数组中的对象,因为{a:1}==={a:1}返回的是false


你可能感兴趣的:(javascript)