关于es5中数组新增方法的总结
一、索引方法
1、indexOf 在数组中查找一个数所在的位置,输出的是下标
var arr = [1,2,t,5,7,8];
var a= arr.indexOf(3);
console.log(a);//输出的是t的下标,是2
二、迭代器方法
1、forEach()把数组中的每个元素循环一遍,并做处理。处理的就是原数组的元素。参数:是一个回调函数,没有返回值。
function fn(){
var arr = [1,2,3,4,5];
arr.forEach(add);
console.log(arr);//[2,3,4,5,6]
}
//num:是数组的元素
//index:元素的下标
//arr:数组
function add(num,index,arr){
arr[index] = num+1;//给数组每一个元素加一
arr[index] = num*num;//数组每一个元素的平方
}
2、map()映射新的数组,新的数组是在原数组的基础上做了一定的处理,参数是一个回调函数,返回值是映射的新数组,且原数组不会改变。
function fn(){
var arr = [1,2,3,4,5];
var arr2 = arr.map(add);
console.log(arr);// arr = [1,2,3,4,5]
console.log(arr2);// arr2 = [2,3,4,5,6]
}
//给数组中的每一个元素加一
function add(num,index){
return num+1;
}
3、filter()过滤产生新的数组,新的数组 是在原数组基础上取了一部分数据(满足条件),参数是回调函数,返回值满足条件的新数组,且原数组不会改变。
function fn(){
var ages = [12,18,8,90];
var arr2 = ages.filter(isAdult);
console.log(ages);
console.log(arr2);
}
function isAdult(num){
return num>=18;
}
4、every()判断数组中的每一个元素是不是都满足某个条件,参数是回调函数(回调函数里写的是条件)。返回值是boolean类型。true:都满足;false:不满足(有一个不满足也是不满足条件)即就是:some方法会在数组中任意一项执行函数返回true之后,不在进行循环。
function fn(){
var scores = [86,96,98,55,83];
// 需求:是不是所有人都及格了。
if(scores.every(gte60)==true){
console.log("全部及格");
}else{
console.log("有不及格的人");
}
}
//输出结果:有不及格的人
function gte60(num){
return num>=60
}
5、some()判断数组中是不是有满足某个条件的一些元素,参数是函数(函数里写的是条件),返回值是boolean类型。true:都满足;false:不满足(有一个满足也是复合满足条件)。即就是:some方法会在数组中任意一项执行函数返回true之后,不在进行循环。
function fn(){
var scores = [86,96,98,55,83];
// 需求:是不是所有人都及格了。
if(scores.some(lt60)==true){
console.log("有不及格的人");
}else{
console.log("全部及格");
}
}
//输出结果:有不及格的人
function lt60(num){
return num<60;
}