第一种方法
利用for循环遍历数组的每一项进行对比看是否重复,如果重复了,用splice()方法去除重复
splice(index,howmany,item1,.....,itemX) 向数组中添加/删除项目,然后返回被删除的项目
参数:
index:必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
howmany:必需。要删除的项目数量。如果设置为 0,则不会删除项目
item1,...,itemX:可选。向数组添加的新项目
第二种方法
利用indexOf()方法,可返回数组中某个指定的元素位置
如果要检索的字符串值没有出现,则该方法返回 -1
第三种方法
利用includes() 方法用于判断字符串是否包含指定的子字符串。
第四种方法
利用Set()方法,因为Set()方法中成员的值都是唯一的,没有重复的值
let arr = [1, 2, 3, 2, 1, 3, 4, 2, 6, 3, 6];
// 第一种方法 利用for循环实现数组去重
let unique = (arr) => {
// 第一层for循环 数组前一项
for (let i = 0; i < arr.length; i++) {
// 第二层for循环 数组后一项
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1); //移出重复数组
j--; //修正下标
}
}
}
return arr;
}
unique(arr)
console.log(arr); //[ 1, 2, 3, 4, 6 ]
// 第二种方法 利用indexOf实现数组去重
let unique = (arr) => {
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr;
}
console.log(unique(arr)); //[ 1, 2, 3, 4, 6 ]
// 第三种方法 利用includes实现数组去重
let unique=(arr)=>{
let newArr = [];
for(let i = 0; i <arr.length;i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique(arr)); //[ 1, 2, 3, 4, 6 ]
// 第四种方法 利用Set()方法实现数组去重
let set = new Set(arr);
let [...a] = set;
console.log(a); //[ 1, 2, 3, 4, 6 ]