1、双重for循环 + splice
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--
}
}
}
2、filter + indexOf,返回item第一次出现的位置等于当前的index的元素 【常用】
let newArr = arr.filter((item, index) => arr.indexOf(item) === index);
3、filter + Object.hasOwnProperty,利用对象的键名不可重复的特点
let obj = {}
arr.filter(item => obj.hasOwnProperty(typeof item + item) ? false : obj[typeof item])
4、new Set + 扩展运算符 或 Array.from 【常用】
let newArr = [...new Set(arr)];
let newArr = Array.from(new Set(arr));