谁能告诉我为什么当我调用函数时,我得到了undefined。我可以在函数内部访问结果,但不能在函数外部访问。
function twoSum(nums, target) {
console.log(nums); // keep track of user input.
console.log(target); // keep track of target.
let arrayOfIndices = [];
// loop through array and perform addition operation
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
arrayOfIndices.push([i, j]);
}
}
}
if (arrayOfIndices.length === 0) {
console.log("No two sum exists");
} else {
console.log(arrayOfIndices);
}
let result = arrayOfIndices;
console.log(result);
}
// Test case
console.log(twoSum([3, 4, 5], 7));
2条答案
按热度按时间ctzwtxfj1#
您需要将
return result
添加到函数的最后一行。它没有返回任何东西。kokeuurv2#
这看起来像一个LeetCode问题(Two Sum)。时间复杂度为O(n^2)。它也不会短路(提前返回),所以你正在计算数组中每个数字的总和。
正如其他人已经提到的,你需要在你的函数中返回索引数组。你没有那么做。我没有看到
return arrayOfIndices
,也没有看到return result
。只需将余数存储在一个Map中,其中所需的值(compliment)是您尚未遇到的值。一旦你得到了赞美,返回它的索引;沿着所存储的余数的索引。