有人可以向我解释这个回调

时间:2017-01-24 05:08:51

标签: javascript arrays callback

我不明白什么是电话支持,它是自己为阵列提供操作还是我不知道从哪里开始

function mySelect (arr, cb) {
      var selected = [];

      arr.forEach(function(ele, i, ar) {
        if (cb(ele, i, ar)) {
          selected.push(ele);
        }
      });

      return selected;
    }

    mySelect([1,2,3,4,5,6], function(ele, i, arr) {
        return (ele % 2 === 0);
    });

1 个答案:

答案 0 :(得分:0)

您的代码通过代码返回数组中的偶数:

ele % 2 === 0 //(test if even)

即。如果ele(或数字)除以2并且没有余数

function mySelect (arr, cb) // cb = callBackFunction
{
  var selected = [];

  arr.forEach(function(ele, i, ar)
  {
    if (cb(ele, i, ar)) // call back here tests if even
    {
      selected.push(ele);
    }
  });
  return selected;
}

var selected = mySelect([1,2,3,4,5,6], function(ele, i, arr)
{
  return (ele % 2 === 0);
});

console.log(selected);

没有回调函数的相同代码,但在main函数中嵌入了均匀测试将是:

function mySelect (arr) // no callBack Function
{
  var selected = [];

  arr.forEach(function(ele, i, ar)
  {
    if (ele % 2 === 0) // tests if even
    {
      selected.push(ele);
    }
  });
  return selected;
}

var selected = mySelect([1,2,3,4,5,6]);

console.log(selected);

我希望这会有所帮助:)