Javascript 函数为模板助手返回未定义

标签 javascript jquery

创建一个模板助手来返回一个要在 DOM 中显示的变量,而我的函数返回未定义,因此不会影响 DOM。不太清楚为什么,尽管我觉得这是一个具有约束力的问题。代码如下:

supportNumber: function(){
            var jobSupportNumber = state.user.jobs.each(function(job){
                console.log(jobOrder.get("jobId"));
                console.log("test");
                console.log(job.get("id"));
                if(jobOrder.get("jobId") == job.get("id")){
                    var jobNumber = job.get("supportNumber");
                    console.log(jobNumber);
                    return jobNumber;
                } 
                else{
                    console.log("this fired");
                }
            });
            console.log(jobSupportNumber);
            return jobSupportNumber;
}

我在控制台进行大量记录,以确保返回值,并且一直返回某些内容,直到最终的返回语句,该语句将 jobSupportNumber 返回为未定义。我做错了什么让它总是返回为未定义?

最佳答案

.each() 不返回它所包装的任何函数的值。内部函数结果仅用于控制.each()循环。

试试这个:

supportNumber: function(){
  var jobSupportNumber = null;

  state.user.jobs.each(function(job){
   if(jobOrder.get("jobId") == job.get("id")){
     jobSupportNumber = job.get("supportNumber");
     return false;  // tell .each() to quit looping
   } 
  });

  return jobSupportNumber;
}

关于Javascript 函数为模板助手返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24249777/

相关文章:

IE 中的 JavaScript : 'this' keyword refers to window object (? )

javascript - JQuery 中的 "<script defer>"hack 发生了什么?

javascript - 隐藏一个 bootstrap 表头

javascript - Javascript SyntaxError : missing ; before statement (after for loop)

jquery - 像 3d 盒子一样的 css 过渡

javascript - jQuery 在 mouseout() 菜单或子菜单后关闭当前子菜单

javascript - 重定向到应用商店或谷歌播放

javascript - 打开 "Save As"对话框下载图片

javascript - Bootstrap tooltip交互和自动隐藏

javascript - 使用 node-mocks-http 测试没有发出事件的服务