版权声明:转载请注明出处 https://blog.csdn.net/Cathence/article/details/82835051
1. for循环 + indexOf
function fun(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(fun([1,3,4,5,3,1,6,6,7,9]));
//(7) [1, 3, 4, 5, 6, 7, 9]
2. forEach + IndexOf
function fun(arr) {
var array = [];
arr.forEach(function(value, index) {
if (array.indexOf(value) < 0) {
array.push(value);
}
}, this);
return array;
}
console.log(fun([1,3,4,5,3,1,6,6,7,9]));
//(7) [1, 3, 4, 5, 6, 7, 9]
3. indexOf和lastIndexOf
function fun(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) !== arr.lastIndexOf(arr[i]) {
arr.splice(i, 1);
}
}
return arr;
}
console.log(fun([1,3,4,5,3,1,6,6,7,9]));
//(7) [3, 4, 5, 1, 6, 7, 9]
4. for…in… +indexOf
function fun(arr) {
var newArr = [];
for (var key in arr) {
if (newArr.indexOf(arr[key]) == -1) {
newArr.push(arr[key]);
}
}
return newArr;
}
console.log(fun([1,3,4,5,3,1,6,6,7,9]));
//(7) [1, 3, 4, 5, 6, 7, 9]
5. 利用ES6的set()方法
function fun(arr) {
return Array.form(new Set());
}
console.log(fun([1,3,4,5,3,1,6,6,7,9]));
//(7) [1, 3, 4, 5, 6, 7, 9]
整理自:牛客网