首页 > 解决方案 > 为什么 JavaScript 函数返回未定义?

问题描述

TwoSum,需要返回与目标相加的整数的索引:输入:nums = [2,7,11,15], target = 9 输出:[0,1] 输出:因为 nums[0] + nums[ 1] == 9,我们返回 [0, 1]。

我是 JavaScript 新手,我不明白为什么返回未定义。经过几次测试,我注意到它甚至没有进入第二个 forloop,但是当我在 python 中编写它时它工作得很好

var twoSum = function(nums, target) {
  for (let i = 0; i < nums.length; i++) {
    if (nums[i] >= target) {
      continue;
    }
    for (let j = i; j < nums.legth; j++) {
      if (nums[j] >= target) {
        continue;
      }
      if (nums[i] + nums[j] === target) {
        const ans = [i, j]
        return ans;
      }
    }
  }
};
console.log(twoSum([2,7,11,15],9));

任何帮助,将不胜感激

标签: javascriptarraysundefined

解决方案


你犯了一个拼写错误。修复legthlength第二个循环。

var twoSum = function (nums, target) {
      for (let i = 0; i < nums.length; i++) {
        if (nums[i] >= target) {
          continue;
        }
        for (let j = i; j < nums.length; j++) {
          if (nums[j] >= target) {
            continue;
          }

          if (nums[i] + nums[j] === target) {
            const ans = [i, j];
            return ans;
          }
        }
      }
    };

    console.log(twoSum([2, 7, 11, 15], 9));


推荐阅读