1. 双循环
var arr = [1,4,2,4,1,2]
function foo(arr) {
var result = []
for(var i=0;i<arr.length;i++) {
if(toCom(arr[i])){
result.push(arr[i])
}
}
function toCom(nowVal){
for(var i=0;i<result.length;i++){
if(nowVal == result[i]){
return false
}
}
return true
}
return result
}
foo(arr)
2. 对象自变量
var arr = [1,4,2,4,1,2]
function foo(arr) {
var obj = {}
var result = []
for(var i=0;i<arr.length;i++) {
if(!obj[arr[i]]){
result.push(arr[i])
obj[arr[i]] = 1
}
}
return result
}
foo(arr)
3. indexOf()
function foo(arr) {
var result = []
for(var i=0;i<arr.length;i++) {
if(result.indexOf( arr[i] ) == -1){
result.push(arr[i])
}
}
return result
}
4.es6的Set数据结构
function foo(arr){
var result = new Set(arr)
return Array.from(result)
//或者 return [...result]
}