一、首先分别介绍各自的功能:
1)forEach对数组的每个元素做处理(批量处理),他的参数是一个回调函数,有三个参数(数组元素内容,元素索引,数组本身);
2)map把原数组中的每个元素进行某种处理,产生一个新的数组(这里的某种定义为为根据自己的需要定义的功能参数);
3)filter过滤,根据条件留下符合条件的内容(这里的条件也可理解为根据自己的需要定义的功能参数);
二、forEach和map的区别
1) forEach 只是改变原来的数组,并不生成新的数组;而map会形成新的函数,需要定义变量去接收新的数组
arr1.forEach(arrsqr);
document.write(arr1+"<br/><br/>");//输出为24,46,68,90,52
var arrnew = arr1.map(arrsqr1);
document.write(arrnew);//输出为14,36,58,80,42
}
function arrsqr(num,index,arr){//num就是数组的每个元素,num,index,arr这三个属性分别代表元素、下标和数组
arr[index] = arr[index]+arr[index]//定义一个新的运算关系,数组内的元素自身和自身相加
// return index*index;//无效函数
// return num*num;//无效函数
}
function arrsqr1(num,index,arr){//num就是数组的每个元素
return num-10;
var ages=[12,23,45,61,8,18];
var agenews = ages.filter(gt17);
var agenews1 =ages.filter(gtindex);
//执行功能函数 “agenews1” 过滤数组 ages内下标为0和1的元素;同时产生新的函数
document.write(ages+"<br/><br/>");//ages
document.write(agenews+"<br/><br/>");
document.write(agenews1);//
}
function gt17(num,index,arr){//功能函数,定义函数,
return num>17;
}
function gtindex(num,index,arr){//功能函数,定义函数,
return index<2;//return的index的值 0,1
}
</script>
1)forEach对数组的每个元素做处理(批量处理),他的参数是一个回调函数,有三个参数(数组元素内容,元素索引,数组本身);
2)map把原数组中的每个元素进行某种处理,产生一个新的数组(这里的某种定义为为根据自己的需要定义的功能参数);
3)filter过滤,根据条件留下符合条件的内容(这里的条件也可理解为根据自己的需要定义的功能参数);
二、forEach和map的区别
1) forEach 只是改变原来的数组,并不生成新的数组;而map会形成新的函数,需要定义变量去接收新的数组
2) forEach只能进行元素之间的运算,且需要写完整 arr[index];
<script type="text/javascript">
function testf(){
var arr1=[12,23,34,45,26];arr1.forEach(arrsqr);
document.write(arr1+"<br/><br/>");//输出为24,46,68,90,52
var arrnew = arr1.map(arrsqr1);
document.write(arrnew);//输出为14,36,58,80,42
}
function arrsqr(num,index,arr){//num就是数组的每个元素,num,index,arr这三个属性分别代表元素、下标和数组
arr[index] = arr[index]+arr[index]//定义一个新的运算关系,数组内的元素自身和自身相加
// return index*index;//无效函数
// return num*num;//无效函数
}
function arrsqr1(num,index,arr){//num就是数组的每个元素
return num-10;
}
</script>
以上函数输出结果为: 24,46,68,90,52
14,36,58,80,42
三、对于fileter的理解应用
/1)filter调用了定义函数 “gt17”,根据 “gt17” 的结果过滤给定的 “ages” 数组;
2)filter的作用主要去过滤数组内的 “定义”内容(这里的定义就是说新定义的功能函数,也可以说是定义函数);
3)filter会形成新的函数,需要定义变量去接收新的数组;
注意:filter的意思是过滤,留下符合条件的;
<script type="text/javascript">
function testf(){var ages=[12,23,45,61,8,18];
var agenews = ages.filter(gt17);
var agenews1 =ages.filter(gtindex);
//执行功能函数 “agenews1” 过滤数组 ages内下标为0和1的元素;同时产生新的函数
document.write(ages+"<br/><br/>");//ages
document.write(agenews+"<br/><br/>");
document.write(agenews1);//
}
function gt17(num,index,arr){//功能函数,定义函数,
return num>17;
}
function gtindex(num,index,arr){//功能函数,定义函数,
return index<2;//return的index的值 0,1
}
</script>
//个人见解,欢迎留言指点;