JS数组中forEach、map和fileter的理解应用

一、首先分别介绍各自的功能:
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>


//个人见解,欢迎留言指点;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值