使用 parseInt() 函数将字符串转换为 int 时出现问题

Having issues converting string to int using parseInt() function

function largestNumber(n) {
  let output = "";
  var toInt = parseInt(output);
  for (let i = 1; i <= n; i++){
    output = output + "9";
  }
  return output;
};

我不知道如何将它变成 return 一个整数。我一直得到 null,或者没有输出。我试过了

 return output.toInt;

 var toInt = output.parseInt();
 var toInt = output.parseInt(output);
 var toInt = output.parseInt("output");
 var toInt = parseInt(output);
 var toInt = parseInt(output,10);

以及其他一些我现在不记得的想法 xD。 非常感谢您的帮助!

编辑

感谢大家的帮助,我发现我的代码中的问题是

var toInt = parseInt(output); 

需要在循环之后调用

return toInt;

但是,Barmar(我希望我拼错了你的名字)有一个更简洁有效的解决方案。

您当前的代码总是尝试从 output 解析一个整数,但您总是在解析之前将 output 初始化为一个空字符串,因此您没有得到 int 作为结果。

您需要等到 output 累积到最终值后才能使用 parseInt()

function largestNumber(n) {
  let output = "";
  for (let i = 1; i <= n; i++){
    output = output + "9";
  }
  return parseInt(output);
}

console.log(largestNumber(5));
console.log(largestNumber(15));

但实际上,这可以根据您当前的逻辑以更简单的方式完成:

function largestNumber(n) {
  return parseInt("9".repeat(n));
}

console.log(largestNumber(5));
console.log(largestNumber(15));

Javascript 语句按照它们在函数中写入的顺序执行。所以你需要在完成所有连接之后调用 parseInt(),而不是之前。

function largestNumber(n) {
  let output = "";
  for (let i = 1; i <= n; i++){
    output = output + "9";
  }
  var toInt = parseInt(output);
  return toInt;
};

虽然一开始就没有充分的理由使用字符串,但您可以使用算术来完成这一切:

function largestNumber(n) {
  result = 0;
  for (let i = 1; i <= n; i++) {
    result = result * 10 + 9;
  }
  return result;
}

console.log(largestNumber(5));

或者更简单:

function largestNumber(n) {
  return Math.pow(10, n) - 1;
}

console.log(largestNumber(5));
console.log(largestNumber(15));