回调函数不返回任何内容

时间:2015-09-20 03:22:00

标签: javascript callback

var res = "";
function longest(sen, callback) {
  sen = sen.split(" ");
  for(var i = 0; i < sen.length; i++) {
    callback(sen[i]);
  }
}

function findLongest(item) {
  if(item.length > res.length) {
    res = item;
  }
  return res;
}

longest("the greatest day EVERERAWEREWRWRAEWR",findLongest);

我正在尝试找到我输入的字符串中最长的单词,但它所做的只是返回undefined。我知道有很多更简单的方法可以找到最长的单词,但我想实现这样的回调。

2 个答案:

答案 0 :(得分:0)

<match url="^holding.php" negate="true"/>更新longest(通过回调),但不返回任何内容。尝试拨打res后打印res,或从longest返回res

答案 1 :(得分:0)

var res = "";
function longest(sen, callback) {
  sen = sen.split(" ");
  for(var i = 0; i < sen.length; i++) {
    callback(sen[i]);
  }
}

function findLongest(item) {
  if(item.length > res.length) {
    res = item;
    console.log('now max len is %s',item);
  }
}

longest("the greatest day EVERERAWEREWRWRAEWR",findLongest);

删除return,因为你不使用它。替换为console.log,以便您可以看到结果。