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的功能