function largestNumber(n) {
let output = "";
var toInt = parseInt(output);
for (let i = 1; i <= n; i++){
output = output + "9";
}
return output;
};
我不知道如何让它返回一个整数。我一直都是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;
然而,巴马尔(我希望我的名字拼写正确)有一个更清洁有效的解决方案。
答案 0 :(得分:0)
您当前的代码总是尝试解析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));
&#13;
但实际上,这可以根据您的逻辑目前正在做的更简单的方式完成:
function largestNumber(n) {
return parseInt("9".repeat(n));
}
console.log(largestNumber(5));
console.log(largestNumber(15));
&#13;
答案 1 :(得分:0)
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));