javascript回调 - 如何使用回调

时间:2016-03-03 18:35:04

标签: javascript callback

我需要这个JS回调函数的帮助。我试图弄清楚回调在JS中是如何工作的。

- 快速测试代码如下:

function debFilter(deb_array, fillCb){
    var filt_darr = [];
    for (var inx in deb_array) {
        filt_darr.push(fillCb(deb_array[inx]));
    }

  return filt_darr;

}
console.log(debFilter(savedInp, function(x) { if (x%2 == 0) { return x;}} ));  

让我们说我的savedInp数组包含[2,3,4,5,6,7,8,9]这样的东西。如何确保我的回调只返回偶数元素而不是奇数元素?所以我的filt_darr将是[2,4,6 ......等]。 使用上面的测试代码我得到[2,未定义,4,未定义,等等]。我也尝试过其他类似的条件而无济于事。我只需要知道如何告诉JS不要推送/返回'我不需要的东西。对不起,如果这是初学者Q. 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

迭代数组,然后将evens推入一个新数组:

 var a = [1,2,3,4,5];

 function getEvens(originalArray){

  var evens = [];
   for(var i = 0; i < originalArray.length; ++i){
     if(originalArray[i] % 2 === 0){
        evens.push(originalArray[i]);
     }
   }

   return evens;
 }

答案 1 :(得分:0)

您可能已经注意到,您正在将每个返回值收集到结果数组中,并且对于每个奇数,您的回调都会返回RATE: 3.00% SPEED: 280 TOT. WT: 52172.6 ERROR: +0.0 (10) AVG: 3.07 DEVIATION: 6.10 。 您可以将代码更改为......

undefined

顺便说一下,ES 5支持Array.prototype.filter,这可能就是你要找的东西。还有一个polyfill,你可以从中获得灵感。