首页 javascript数组去重常用函数

javascript数组去重常用函数

jaeheng 2020-09-01 01:45:47 0 100

JavaScript中数组去重的几种方法如下, 这几个函数都可以对简单的一维数组进行去除重复的操作。

注意:请注意数据类型,比如字符串的1和数组1是不一样的,不算重复

一、利用数组的indexOf方法去重 (ES5)

原理:array.indexOf(item, start) 返回数组array中指定元素item的位置,没有则返回-1

var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
	var len = arr.length;
	var temp = [];       // 新建一个数组来存放arr中的值
	for (var i = 0; i < len; i++) {
		if(temp.indexOf(arr[i]) === -1){
		temp.push(arr[i]);
	}
    }
    return temp;
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));

二、使用ES6中的 Set 方法去重

原理:ES6 提供了新的数据结构 Set。它似于数组,但它的一大特性就是所有元素都是唯一的,没有重复。


var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
	return Array.from(new Set(arr));
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));

三、使用ES6中数组的includes 方法去重

原理:ES6 给数组提供了includes方法,判断元素是否在该数组中存在,类似indexOf判断
var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
	var len = arr.length;
	var temp = [];       // 新建一个数组来存放arr中的值
	for (var i = 0; i < len; i++) {
		if(!temp.includes(arr[i])){
			temp.push(arr[i]);
		}
	}
	return temp;
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));


发表评论