连接输出 - 初学者函数

时间:2017-11-12 20:15:12

标签: javascript string function loops concatenation

这是一个非常基本的功能,因为我刚开始用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!

我尝试了许多不同的字符串,比如尝试使用和清空字符串。但似乎没有任何效果。

6 个答案:

答案 0 :(得分:1)

必须在循环之前定义消息字符串,否则你不会连接字符串,但只是覆盖它们:

function laugh(num)
{
    var message = '';

    for (var i = 0; i < num ; i += 1)
        message += "ha";

    return message + "!";
}

使用console.log()调试有一个缺点,就像其他用户指出的那样附加换行符,但问题不是由此造成的。

我还修改了循环,因为在开头将i声明为1message声称为''会产生比预期更少的笑声!所以要么你去:

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变量。

&#13;
&#13;
message
&#13;
&#13;
&#13;

但是,如果您想要一个更简单的解决方案和现代解决方案,您应该考虑function laugh(num) { var message = ''; for (var i = 0; i < num; i += 1) { message += "ha"; } return message + "!"; } console.log(laugh(3));功能:

&#13;
&#13;
repeat
&#13;
&#13;
&#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循环外设置一个变量,并使用它来累积消息输出。