js数组forEach map filter方法

forEach方法中的function回调支持三个参数,第一个是遍历的数组内容,第二个是对应的数组索引,第三个是数组本身

[].forEach(function(value,index,array){
    //...
});

对比jQuery的$.each()方法:
$.each([],function(index,value,array){
    //...
});
注意:第一个参数和第二个参数是相反的

例子:
[1,2,3,4].forEach(console.log);
输出:1,0,[1,2,3,4]
      2,1,[1,2,3,4]
      3,2,[1,2,3,4]
      4,3,[1,2,3,4]

map方法,表示映射数组
[].map(function(value,index,array){
    //...
});

例子:
var data = [1,2,3,4];
var arrayOfSquares = data.map(function(item){
    return item*item;
});
alert(arrayOfSquares);
//输出1,4,9,16

注意:callback需要有return值,如果没有,将会映射成undefined

利用map方法获取对象数组中的特定属性值,例子:
var users = [
    {"name":"aa","email":"aa@email.com"},
    {"name":"bb","email":"bb@email.com"},
    {"name":"cc","email":"cc@email.com"},
]
var emails = users.map(function(user){
    return user.email;
});
console.log(emails.join(","));
输出aa@email.com,bb@email.com,cc@email.com

filter方法筛选数组
用法和map相似,callback函数需要返回布尔值
var data = [0,1,2,3];
var arrayFilter = data.filter(function(item){
    return item;
});
console.log(arrayFilter);
输出[1,2,3]
解释:因为0为false,所以被筛选了

可以将map和filter结合使用,例子:
var emailsZhang = users
    .map(function(user){ return user.email; })
    .filter(function(email){ return /^zhang/.test(email); });
console.log(emailsZhang.join(","));
//zhang@email.com
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值