let arr = ['哈哈', '嘿嘿',undefined, '乐乐', '嘿嘿',1,null,'', ' '];
let newArr =[];
//使用indexOf检索数组,如果没有出现是-1,加入到新的数组中
arr.forEach((r,i)=>{
if(newArr.indexOf(arr[i])==-1){
newArr.push(r);
}
})
console.log(newArr) //["哈哈", "嘿嘿", undefined, "乐乐", 1, null, "", " "]
//使用new Set([...]) 去重, Array.from() 转化为数组 ...是扩展运算符,取出对象中可遍历的
let newArr1 = Array.from(new Set([...arr]))
console.log(newArr1) //["哈哈", "嘿嘿", undefined, "乐乐", 1, null, "", " "]
//使用Array.from new Set filter() ,数组去重删除数组中的空值如 null ,'',undefind ,不能删除空格
let newArr2 = Array.from(new Set(arr)).filter(e=>e)
console.log(newArr2) //["哈哈", "嘿嘿", "乐乐", 1, " "]
//使用includes , 如果新数组中没有包含arr的第i个元素就push到里面
let newArr3 =[]
arr.forEach((e,i)=>{
if(!newArr3.includes(arr[i])) {
newArr3.push(e)
}
})
console.log(newArr3) //["哈哈", "嘿嘿", undefined, "乐乐", 1, null, "", " "]