这似乎很简单,但我不明白。为什么当我通过下面的函数传递b和c时,if语句返回true,而我使用return语句却得到未定义?
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)
我希望结果是“ hello”,但是我不确定。当我发现问题时,我有一种感觉,我会打我的头,然后“走”。感谢您的答复。
答案 0 :(得分: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));
答案 1 :(得分:0)
您正在从内部函数forEach返回问候。 如果要从主函数返回问候,请不要使用forEach,请使用简单的for循环。