【发布时间】:2021-12-10 05:22:58
【问题描述】:
我正在使用 .map 方法在 leetcode 中处理这个 problem,但不知何故它返回未定义。有人可以解释为什么会这样吗?我阅读了文档,它说 .map 通常返回一个数组。
var twoSum = function (nums, target) {
for (let i = 0; i < nums.length; i++){
const num = nums[i];
nums.slice(i+1).map((element) => {
if (num + element === target){
return [i, nums.indexOf(element, i+1)];
}
});
}
}
【问题讨论】:
-
因为如果
num + element不是=== target,你永远不会在回调中发出return,所以回调隐式返回undefined。 -
twoSum也不会返回任何内容(唯一的return是从map回调返回,而不是twoSum)。另外,如果你不使用它产生的数组,你永远不应该使用map(详细信息在我的博客文章here)。
标签: javascript arrays scope