首页 > 语言 > JavaScript > 正文

Array数组对象中的forEach、map、filter及reduce详析

2024-05-06 15:32:12
字体:
来源:转载
供稿:网友

前言

刚才某人问了我一个问题。map怎么遍历,我刷刷刷就是一顿写。遍历么,forEach么,妥妥的。

var map = new Map();map.set('item1', 'value1')map.set('item2', 'value2')map.forEach(function(value, key, map) { console.log("Key: %s, Value: %s", key, value);});

好吧,我写完了之后,他发给我了一句话。 [].forEach()改成[].map()怎么用?

what?我这个暴脾气。。。。我当然是详细的说一下Array的常规遍历方法以及场景了。

Array.filter

语法

var new_arr = arr.filter(callback(element, index, array){}, this)

参数

callback 回调
    element 当前的value
    index   当前的索引值
    array   arr这个数组对象
this 回调的this指向

返回值

Array 类型
//符合条件的值组成的数组

用法

//如果返回值是true的话,就是符合条件。//filter 不会改变原数组,它返回过滤后的新数组。//这个里返回数组里面的偶数[10,11,12,13].filter((v)=>v % 2 == 0)//只要审核通过的。当然正常情况下,对象比这个复杂一些。[{state:1},{state:0},{state:0},{state:0}].filter((v)=>v.state == 1)//只要成年人,记录是有效的[{age:18,state:1},{age:16,state:0},{age:21,state:0}].filter((v)=>v.state == 1 && v.age > 17)

场景

场景就是过滤,把符合条件的整理到一起,常见的就是展示审核通过的数据,只显示关注我的人,只显示妹子,对吧糙汉子就过滤不看了。

Array.forEach

语法

arr.forEach(callback(element, index, array){}, this)

参数

callback 回调
    element 当前的value
    index   当前的索引值
    array   arr这个数组对象
this 回调的this指向

返回值

undefined
// 这个东西没有返回值

用法

//遍历数组。打印到控制台[10,11,12,13].forEach((v)=>{ console.log(v)})// 成功的收集到success里面,错误的收集到error里面。var success = [],error = [];[{state:1},{state:0},{state:0},{state:0}].forEach((v)=>{ if(v.state == 1){  success.push(v) }else{  error.push(v) }})// 给20岁的小姐姐打招呼[{state:1,age: 1},{state:0,age: 20},{state:0,age: 19},{state:0,age: 31}].forEach((v)=>{ if(v.age == 20){  console.log('你好啊,我今年正好80') }})

场景

比如说绑定事件,比如判断值然后push到不同的地方

Array.map

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选