开发项目的时候发现前台需要的数据格式有好几种,想自己在前台处理一下。于是就想从这样
变成这样
就是根据两个数组一样的字段值统一合并为一个数组,已开始使用的map循环数组,循坏是发现如果不满足条件会有个undefind的值进行占位,
后来发现用filter就没有这个问题
下面来看一下这两个函数的区别:
map
数据格式是这样的:
array.map(function(currentValue,index,arr), thisValue)
currentValue | 必须。当前元素的值 |
index | 可选。当前元素的索引值 |
arr | 可选。当前元素属于的数组对象 |
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
filter
数据格式:
array.filter(function(currentValue,index,arr), thisValue)
currentValue | 必须。当前元素的值 |
index | 可选。当前元素的索引值 |
arr | 可选。当前元素属于的数组对象 |
ilter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。