在开发中遇到对复杂数组中筛选出满足条件的数组元素,进行一下总结。
-
语法
array.filter(function(currentValue,index,arr), thisValue)
-
定义和用法
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
例如,返回数组中大于2小于8的数组元素。
1. ES6写法:
[1,2,3,4,5,6,7,8,9,10].filter((item)=>{return item>2 && item<8});
2. ES5写法:
[1,2,3,4,5,6,7,8,9,10].filter(function(item){
return item>2 && item<8
});
filter()方法对每个数组元素进行判断,回调函数callbak返回true的元素生成新数组,返回false的元素将被跳过,并且不包含在新数组中。
在实际的开发需求中,需要筛选出item.riskCode === "0XBB"或者item.riskCode === "0JKB"的元素,进行条件判断,代码如下:
let remit = this.epolicy.insuredWrapers[0].inspWrapers.filter(
item => { item.riskCode == "0XBB" || item.riskCode == "0JKB" }
)
注意filter方法返回的是一个数组,对于筛选出的元素要引用时记得加下标,如remit[0]。