首页 > 解决方案 > 使用 parseInt() 函数将字符串转换为 int 时出现问题

问题描述

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

我不知道如何让它返回一个整数。我一直得到空值,或者没有输出。我努力了

 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(我希望我的名字拼写正确)有一个更清洁有效的解决方案。

标签: javascriptstringloopsintparseint

解决方案


您当前的代码总是尝试从 解析一个整数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));


推荐阅读