今天学习了Array的filter方法,MDN上解释的是filter()方法中行参是一个回调函数.这个回调函数就是一个规则,返回一个布尔值.filter()方法会对数组中每一个元素使用这个回调函数.注意,这里说的是每一个元素.并且将返回值为true的元素装入一个新数组返回.代码如下:
var arr = ["关羽","woi","赵子龙","马zi超","黄忠"];
var arr1= arr.filter(function(ele,index,array){
if(ele.length>2){
return true;
}
return false;
})
console.log(arr);
console.log(arr1);
这里定义的function是判断元素的长度,如果大于2 返回true…可是return不是结束function吗?答案是yes.那既然是这样,在控制台输出"赵子龙"的时候filter()这个方法应该结束了啊.其实不然.
return只是结束掉了定义的function,而filter()这个方法内部有一个类似for循环的句式对元素进行依次判断function的功能.