JS Array.filter()方法过滤数组元素,语法及参数
Array.filter()方法
JavaScript内置的数组方法filter()可用于遍历调用对象数组,并过滤掉数组内的一些不符合回调函数指定条件的元素,并利用符合条件的元素组件一个新的数组。
filter()语法及回调函数参数
arr.filter( func, thisValue )
提示:filter()方法不会改变原数组;不会对空的数组进行检测。
提示:thisValue参数是可选的,可传递给回调函数func,用作this的值,默认为undefined。
filter()回调函数结构
func( value, index, array )
参数解析表:
参数 | 描述 |
---|---|
value | 调用filter()方法的数组中的元素值 |
index | 可选,调用对象数组中的索引 |
array | 可选,调用对象数组本身 |
filter()实例代码,及在线编辑器
<script>
var arr1 = [1,3,5,7,9]
function func(value, index ,array){ //该回调函数中,有三个参数,只需用了value一个
return value + this >= 6
}
var arr2 = arr1.filter(func, 1) //其中参数1为this的值
var t = arr2 instanceof Array
alert(arr2+' arr2是不是数组:'+ t)
alert(arr1) // arr1的值并没有改变
</script>
实例代码解析
如上代码,基本逻辑是这样的,设计一个回调函数func,在filter()遍历数组的过程中,用于筛选出“值+1(this的值)”大于等于6的元素,并组建成一个新的数组,arr2 instanceof Array用于判断arr2的类型是否为数组。