function unique(arr) {
let obj = {}
let isNull, isUndefined
for (let i = 0; i < arr.length; i++) {
if (arr[i] === null && !isNull) {
isNull = 1
obj['null'] = 1
}
if (arr[i] === undefined && !isUndefined) {
isUndefined = 1
obj['undefined'] = 1
}
if (obj[JSON.stringify(arr[i])]) {
} else {
obj[JSON.stringify(arr[i])] =1
}
}
return Object.keys(obj).map(x=>JSON.parse(x)) // 以数组的形式返回键
}
let arr = [123, null, {a: 1}, {a: {b: 1}, c:null}, {a: "1"}, {a: {b: 1}, c:null}, "meili", [1, 2], [1,2]]
// [123, null, {a: 1}, {a: {b: 1}, c:null}, {a: "1"}, "meili", [1, 2]]
console.log(unique(arr))