数组去重三种方法:
原理:数组 indexOf方法或includes方法,查找数组中有没有某一值
详情:定义新数组,遍历原数组,在新数组中查找原数组每一元素的位置,若-1则添加进新数组
var arr = [10, 10, 20, 30, 50, 30, 11, 50, 6, 7, 40]
- indexOf
function repet1(arr){
var arr2=[];
for(var i=0;i<arr.length;i++){
if(arr2.indexOf(arr[i])<0){
arr2.push(arr[i]);
}
}
return arr2;
}
- includes
function repet2(arr){
var arr2=[];
for(var i=0;i<arr.length;i++){
if(arr2.includes(arr[i])){
arr2.push(arr[i]);
}
}
return arr2;
}
- set
function repet3(arr){
//Set数据结构,它类似于数组,其成员的值都是唯一的
return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组
}
ES6 扩展
findIndex()方法
找出第一个符合条件的位置,如果不符合就返回-1
let arr = [10, 15, 20, 25,30];
let index = arr.findIndex(item=>item>20)
console.log(index) // 3
find()方法
找符合条件的元素,找到的话就返回这个元素,没找到就返回undefined
let a = arr.find(item=>item<10)
console.log(a) // undefined
let b = arr.find(item=>item>20)
console.log(b) //25