这是一个非常基本的功能,因为我刚开始用JavaScript编程。
function laugh(num) {
for(var i = 1; i < num ; i += 1) {
var message = "ha";
console.log(message);
}
return message + "!";
}
console.log(laugh(3));
我得到的输出是:
ha
ha
ha!
但我需要它
hahaha!
我尝试了许多不同的字符串,比如尝试使用和清空字符串。但似乎没有任何效果。
答案 0 :(得分:1)
必须在循环之前定义消息字符串,否则你不会连接字符串,但只是覆盖它们:
function laugh(num)
{
var message = '';
for (var i = 0; i < num ; i += 1)
message += "ha";
return message + "!";
}
使用console.log()
调试有一个缺点,就像其他用户指出的那样附加换行符,但问题不是由此造成的。
我还修改了循环,因为在开头将i
声明为1
而message
声称为''
会产生比预期更少的笑声!所以要么你去:
var message = 'ha';
for (var i = 1; i < num ; i += 1)
或者你去找:
var message = '';
for (var i = 0; i < num ; i += 1)
但如果有人使用通用逻辑来参数化函数,第一种方法会产生误导性的结果。
答案 1 :(得分:1)
您收到此输出是因为每个console.log()
调用都将以新行打印,您需要在循环外声明message
变量。
您需要在记录之前形成整个消息。
function laugh(num) {
var message = 'ha';
for (var i = 1; i < num; i += 1) {
message += "ha";
}
return message + "!";
}
<强>演示:强>
function laugh(num) {
var message = '';
for (var i = 1; i < num; i += 1) {
message += "ha";
}
return message + "!";
}
console.log(laugh(5));
答案 2 :(得分:1)
console.log()
在最后附加一个新行
在message
之前声明for
并将每个部分存储到
然后在循环之后,在console.log()
:
function laugh(num) {
var message = "";
for(var i = 1; i < num ; i += 1) {
message += "ha";
}
console.log(message);
return message + "!";
}
console.log(laugh(3));
答案 3 :(得分:1)
移动循环的初始消息。
function laugh(num) {
var message = "";
for(var i = 1; i < num ; i += 1) {
message += "ha";
}
return message + "!";
}
console.log(laugh(5));
以下循环只会将num
次'ha'分配给消息变量。在循环结束时,它变成了“ha”+“!” =&GT; “哈!”。并且包装此循环的函数未按预期最终完成。 console.log
只是伪造你 - ))
for(var i = 1; i < num ; i += 1) {
var message = "ha";
}
答案 4 :(得分:1)
如果您更喜欢for
循环方法来执行此任务,则应在<{1}}之外将 message
变量声明为空字符串循环,然后,每个周期将for
连接到ha
变量。
message
&#13;
但是,如果您想要一个更简单的解决方案和现代解决方案,您应该考虑function laugh(num) {
var message = '';
for (var i = 0; i < num; i += 1) {
message += "ha";
}
return message + "!";
}
console.log(laugh(3));
功能:
repeat
&#13;
答案 5 :(得分:0)
function laugh(num){
var message = '' ;
for(var i=0;i<num;i++) {
message= message + "ha";
}
return message + "!";
}
console.log(laugh(3));
如果要将其记录在函数外部,则不需要函数内的console.log。另外,在for循环外设置一个变量,并使用它来累积消息输出。