<script>
var arrData = [1, 2, 3, 43, 2, 3, 1, '我问问', 'wwww', '我问问', null, undefined, '0', undefined, null];
/*方法一:利用ES6 Set去重(ES6中最常用)*/
function unique(arr) {
// return Array.from(new Set(arr))
return [...new Set(arr)]
}
// console.log(unique(arrData))
/*输出[1, 2, 3, 43, '我问问', 'wwww',null, undefined, '0']*/
/*方法二、利用for嵌套for,然后splice去重(ES5中最常用)*/
function unique1(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;
}
// console.log(unique1(arrData));
/*输出[1, 2, 3, 43, '我问问', 'wwww',null, undefined, '0']*/
/*方法三:利用indexOf去重*/
function unique2(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
// console.log(unique2(arrData));
/*输出[1, 2, 3, 43, '我问问', 'wwww',null, undefined, '0']*/
/*方法四:利用includes*/
function unique3(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (!newArr.includes(arr[i])) {
newArr.push(arr[i]);
}
}
return newArr;
}
// console.log(unique3(arrData));
/*输出[1, 2, 3, 43, '我问问', 'wwww',null, undefined, '0']*/
/*方法四:利用includes*/
function unique4(arr) {
return arr.filter(function (item, index, arr1) {
//当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
return arr1.indexOf(item, 0) === index;
});
}
// console.log(unique4(arrData));
/*输出[1, 2, 3, 43, '我问问', 'wwww',null, undefined, '0']*/
</script>