语法
array.filter(function(currentValue,index,arr), thisValue)
其中,array是需要过滤的数组
function(currentValue, index, arr) 是一个函数,array的每个元素需要作为这个函数中的currentValue执行这个函数。
currentValue,必须,array数组的当前执行filter中的方法的元素,形参
index,可选,当前元素的索引
arr,可选, 当前元素属于的数组对象
thisValue, 可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。 如果省略了 thisValue ,“this” 的值为 “undefined”(thisValue的描述复制于“菜鸟教程”,我也不知道这个参数的作用,感觉上说应该用到的地方不会太多)
代码演示
<div>
<button onclick="filterDemo()">点我</button>
<span id="demo"></span>
</div>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
<script>
var array= [1,2,3,4,5] //定义被过滤的数组
function filterDemo(){
//array调用filter函数,传入第一个参数“函数”,array数组的每个元素都要执行这个函数
//过滤后生成一个新的数组,赋值给newArray
var newArray = array.filter(function(currentValue, index){
//这个函数两个形参,currentValue为当前元素,index为当前元素索引
//返回当前元素大于2,且索引大于2
//即每个元素[1,2,3,4,5],都要经过是否大于2且是否索引大于2的判断
//是的话,则被过滤到newArray中
return currentValue>2 && index>2
})
document.getElementById("demo").innerHTML = newArray
}
</script>
大于2的元素为3.4.5,3的索引为2
所以同时索引大于2的为 4.5
执行结果: