使用 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));
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));