var arr = [1, 1, 2, 3, 4, 4, 4, 5, 2, 3, 4, 5, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0];
//第一种
function uniqueArr1(array) {
var obj = {},
arrtmp = [];
for (var val in array) {
if (!obj.hasOwnProperty(array[val])) {
obj[array[val]] = array[val];
arrtmp.push(array[val]);
}
}
return arrtmp;
}
console.log(uniqueArr1(arr))
//第二种
function uniqueArr2(array) {
var _arr = [],
isRepeat;
for (var i = 0; i < array.length; i++) {
isRepeat = false;
for (var j = 0; j < _arr.length; j++) {
if (array[i] == _arr[j]) {
isRepeat = true;
break;
}
}
if (!isRepeat) {
_arr.unshift(array[i]);
}
}
return _arr;
}
console.log(uniqueArr2(arr))
//第三种
function uniqueArr3(array) {
var _arr = [],
isRepeat;
for (var i = 0; i < array.length; i++) {
isRepeat = false;
for (var j = i + 1; j < array.length; j++) {
if (array[i] == array[j]) {
isRepeat = true;
break;
}
}
if (!isRepeat) {
_arr.unshift(array[i]);
}
}
return _arr;
}
console.log(uniqueArr3(arr))
//第四种
function uniqueArr4(array) {
return array.filter(function(item, index) {
return array.indexOf(item) === index;
});
}
console.log(uniqueArr4(arr))
//第五种
function uniqueArr5(array) {
var _arr = [];
array.forEach(function(item) {
if (_arr.indexOf(item) === -1) {
_arr.push(item);
}
});
return _arr;
}
console.log(uniqueArr5(arr));
//第六种
function uniqueArr6(array) {
var _arr = [];
array.sort();
for (var i = 0; i < array.length; i++) {
if (array[i] !== array[i + 1]) {
_arr.push(array[i]);
}
}
return _arr;
}
console.log(uniqueArr6(arr))
//第七种
function uniqueArr7(array) {
var _arr = [];
array.sort();
for (var i = 0; i < array.length; i++) {
if (array[i] !== _arr[_arr.length - 1]) {
_arr.push(array[i]);
}
}
return _arr;
}
console.log(uniqueArr7(arr))
//第八种 includes
function uniqueArr8(array) {
var _arr = [];
array.forEach(function(item) {
if (!_arr.includes(item)) {
_arr.push(item);
}
});
return _arr;
}
console.log(uniqueArr8(arr))
//第九种
function uniqueArr9(array) {
return array.sort().reduce(function(prev, item) {
if (prev.length === 0 || prev[prev.length - 1] !== item) {
prev.push(item);
}
return prev;
}, []);
}
console.log(uniqueArr9(arr))
//第十种
function uniqueArr10(array) {
return arr.reduce(function(prev, next) {
prev.indexOf(next) == -1 && prev.push(next);
return prev;
}, [])
}
console.log(uniqueArr10(arr))
//第十一种
function uniqueArr11(array) {
var _arr = [];
_temp = new Map();
for (var i = 0; i < array.length; i++) {
if (!_temp.get(array[i])) {
_temp.set(array[i], 1);
_arr.push(array[i]);
}
}
}
console.log(uniqueArr11(arr))
//第十二种
function uniqueArr12(array) {
return Array.from(new Set(array));
}
console.log(uniqueArr12(arr))
JavaScript 数组去重的多种方法
最新推荐文章于 2024-10-16 16:26:58 发布