1. filter方法
<script>
let arr = [1, 2, 8, 28, 12, 28, 15, 5, 15];
function unlink(arr) {
return arr.filter(function (item, index, arr) {
//当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
return arr.indexOf(item, 0) === index;
});
}
console.log(unlink(arr)); // [1, 2, 8, 28, 12, 15, 5]
</script>
2. 遍历数组法
<script>
let arr = [1, 2, 8, 28, 12, 28, 15, 5, 15];
// 先定义一个空数组
let newArr = []
for (var i = 0; i < arr.length; i++) {
// 在newArr中找arr的每一项,没找到就添加到newArr
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
console.log(newArr)
</script>
3. reduce方法
let arr = [1, 2, 8, 28, 12, 28, 15, 5, 15];
let newArr = arr.reduce((acc,cur)=>{
if(!acc.includes(cur)){
// concat() 连接两个或多个字符串
return acc.concat(cur)
}else{
// 有的话就return数组
return acc
}
},[])
console.log(newArr); // [1, 2, 8, 28, 12, 15, 5]
4. ...new Set()
let arr = [1, 2, 8, 28, 12, 28, 15, 5, 15];
let ind=[...new Set(arr)]
console.log(ind)