删除数据中的假值


function bouncer(arr) {
   return arr.filter(function(a){
    return Boolean(a) !== false;
  });
}

我不知道为什么a不需要声明下是arr里的数据?



西瓜妈妈
浏览 1092回答 1
1回答

kevinZee

//首先将myFilter方法添加在数组的原型之上,达到和filter,sort等方法在任意数组实例上调用的效果 //这个callback就是你在调用myFilter这个方法的时候传进去的函数 Array.prototype.myFilter = function (callback) {     //定义一个空数组用于返回结果数组     var array = [];     //遍历当前的数组实例,也就是this     for (var i = 0; i < this.length; i++) {         //执行callback,将本次循环的数组的元素,当前元素的下标和数组实例本身作为参数传给callback         //callback需要返回一个布尔值         if (callback(this[i],i,this)) {             //当callback执行结果为真时,表明当前元素符合条件             //将当前的这个数组元素添加进结果数组             array.push(this[i]);         }     }     //返回结果数组     return array; } //创建一个数组实例testArr var testArr = [1,2,3,4,5,6]; //调用myFilter方法,并传入一个函数 testArr.myFilter(function(a){     //这个函数的形参a其实就是数组的一项     //你可以看上面的myFilter的具体实现,因为myFilter调用后,会遍历调用myFilter的数组实例     //那么在每一次循环的过程中,都会将数组的当前一项作为参数传递给当前函数     //则此函数执行的结果是真是假,就会影响结果数组的元素     return a>3; })因为这个a是这个回调函数的参数,上面我写了一个简单的myFilter方法实现了类似filter的功能这个函数在执行循环的时候,会调用这个callback,并将当前的数组项传入
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript