forEach遍历数组
arr.forEach(function(value,index,array){
// value 数组每一个元素
// index 数组元素的索引
// array当前的数组
console.log(value,index,array)
})
forEach 数组遍历 相当于for循环
arr.forEach((item,index,arr)=>{
console.log(item,index,arr)
})
filter过滤数组
返回过滤后的新数组
var newarr = arr.filter(function(value,index,array){
return value >=10
})
console.log(newarr)
some
some查找数组中是否有满足条件的元素
// 查找满足条件的元素是否存在 ,返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
var arr = [10,30,34,5];
var flag = arr.some(function(value){
return value < 5
})
console.log(flag);
every
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
- 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回 true。
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
console.log(ages.every(checkAdult));//false
findIndex
findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
var i = ages.findIndex(checkAdult);
console.log(i); // 2
map
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
var numbers = [4, 9, 16, 25];
var arr = numbers.map(Math.sqrt);
console.log(arr);//[2,3,4,5]
注意: map() 不会改变原始数组。
forEach和some和filter的区别
var arr = ['red','green','pink','blue'];
//遍历
arr.forEach(function(value){
if(value === 'green'){
console.log("找到了该元素");
return true; //在forEach里 return不会终止循环
}
console.log(11)
return false;
})
forEach所有元素都会遍历
arr.some(function(value){
if(value === 'green'){
console.log("找到了该元素");
return true;//在some里面遇到return true 就是终止遍历 迭代效率更高
}
console.log(11)
return false;
})
some查找到第一个满足条件的元素就终止循环
arr.filter(function(value){
if(value === 'green'){
console.log("找到了该元素");
return true;//在filter里面return 不会终止遍历
}
console.log(11)
return false;
})
要查找数组中唯一的元素 用some方法更合适