- 利用indexOf()
- 利用filter+indexOf()
- 利用Array.from(new Set(数组))
/* 思路:遍历旧数组,利用indexOf特性查找新数组有没有这个值,没有的话添加到新数组里面 */
//第一种
var arr1 = [1, 2, 4, 5, 44, 5, 6, 6, 2, 3]
var arr2=[]
arr1.forEach(i=>{
if(arr2.indexOf(i)===-1){
arr2.push(i)
}
})
console.log(arr2);
//第二种
// 利用filter来去重封装函数
function uniques(arr) {
var res = arr.filter((item, index, array) => {
return array.indexOf(item) === index
})
return res
}
var arr3= uniques(arr1)
console.log(arr3);
// set封装
function uniquess(arr) {
//Set数据结构,它类似于数组,其成员的值都是唯一的
return Array.from(new Set(arr)) // 利用Array.from将Set结构转换成数组
}
var arr4 = [1, 2, 4, 5, 44, 5, 6, 6, 2, 3]
console.log(uniquess(arr4));