数组去重的方法: 1.利用for循环,splice()去重 2.indexof()===-1 3.includes() 4.ES6中的Set() 1.利用for嵌套for,然后splice去重(ES5中最常用)
function demo1(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
j--
}
}
}
return arr;
}
var arr = [2, 2, 2, 8, 9, 8, 8, 8, true, 'red', 'red', 'red'];
arr = demo1(arr);
console.log(arr);
2.利用indexOf去重 indexOf(‘元素') 存在返回元素第一次出现的索引位置,从索引0开始 该元素不存,在返回-1
function demo2(arr) {
var arr0 = [];
for (var i = 0; i < arr.length; i++) {
if (arr0.indexOf(arr[i]) == -1) {
arr0.push(arr[i])
}
}
return arr0;
}
var arr = [2, 2, 2, 8, 9, 8, 8, 8, true, 'red', 'red', 'red'];
arr = demo2(arr);
console.log(arr);
3.利用includes 可以判断一个数组中是否包含某一个元素,并返回true 或者false
function demo3(arr) {
var arr0 = [];
for (var i = 0; i < arr.length; i++) {
if (!arr0.includes(arr[i])) {
arr0.push(arr[i])
}
}
return arr0;
}
var arr = [2, 2, 2, 8, 9, 8, 8, 8, true, 'red', 'red', 'red'];
arr = demo3(arr);
console.log(arr);
4.// 利用ES6 Set去重(ES6中最常用)
function demo4( arr){
return [...new Set(arr)]
}
var arr = [2, 2, 2, 8, 9, 8, 8, 8, true, 'red', 'red', 'red'];
arr = demo4(arr);
console.log(arr);