【问题标题】:How can this function be returning undefined?这个函数怎么会返回未定义的?
【发布时间】:2019-05-11 01:26:06
【问题描述】:

这看起来很简单,但我就是不明白。为什么当我通过下面的函数传递 b 和 c,并且 if 语句返回 true,而我使用 return 语句时,我得到 undefined?

function stockList(arr1, arr2){
  arr1.forEach(function(elB){
     for (var elC in arr2){
       if (elB.charAt(0) === arr2[elC]){
        return "hello"
       }
     }
  })
}

b = ["ABAR 200", "CDXE 500", "BKWR 250", "BTSQ 890", "DRTY 600"]
c = ["A", "B"]

stockList(b,c)

我希望结果是“你好”,但我没有定义。当我发现问题时,我有一种感觉,我会撞到我的头并发出“doh”。感谢您的任何回复。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    forEach 不返回任何内容。使用两个for 循环,并可能在函数末尾添加一个包罗万象的return

    function stockList(arr1, arr2) {
      for (var elB in arr1) {
        for (var elC in arr2) {
          if (arr1[elB].charAt(0) === arr2[elC]) {
            return "hello"
          }
        }
      }
      return "goodbye";
    }
    
    b = ["ABAR 200", "CDXE 500", "BKWR 250", "BTSQ 890", "DRTY 600"]
    c = ["A", "B"]
    
    console.log(stockList(b, c));

    【讨论】:

      【解决方案2】:

      你正在从一个内部函数返回你好:forEach。 如果你想从 main 函数返回 hello,不要使用 forEach,使用简单的 for 循环。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2018-03-08
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多