【发布时间】:2020-08-09 02:01:40
【问题描述】:
我不知道为什么我的 findDroids 函数无法引用我的 droids 函数中的 result 变量。当我运行此代码时,我得到“未定义结果”。非常感谢任何提示/指导。我是 Javascript 新手,所以请放轻松:)
function droids(arr) {
let result = '';
arr.forEach(findDroids);
return result;
}
function findDroids(value, index, arr){
if (arr[index] == "Droids"){
result = "Found Droids!";
} else{
result = "These are not the droids you're looking for."
}
}
// Uncomment these to check your work!
const starWars = ["Luke", "Finn", "Rey", "Kylo", "Droids"]
const thrones = ["Jon", "Danny", "Tyrion", "The Mountain", "Cersei"]
console.log(droids(starWars)) // should log: "Found Droids!"
console.log(droids(thrones)) //should log: "These are not the droids you're looking for."
【问题讨论】:
-
因为 JS 具有词法作用域,并且
findDroids没有像let result一样在droids内部声明。您的问题标题已经表明您知道它在不同的范围内 - 不,不可能创建对变量的引用或传递它们。 -
顺便说一句,
forEach似乎在这里无论如何都是错误的工具。我认为您正在寻找find或some。
标签: javascript foreach