前言
刚才某人问了我一个问题。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
新闻热点
疑难解答
图片精选