返回String而不是循环print语句

时间:2017-01-29 01:04:09

标签: javascript

我是Javascript的新手,我很好奇如何在字符串中存储值然后返回它。在下面的示例中,选择了2个数字,例如2和8,程序应该返回2x1 = 2,2x2 = 4,.....一直到2x8 = 16。这显然可以通过不断循环print语句来完成,但是我如何能够将所有值存储在String中然后返回字符串。

function showMultiples (num, numMultiples)
{
for (i = 1; i < numMultiples; i++)
  {
    var result = num*i;
    console.log(num + " x " + i + " = " + result+ "\n"); 
  }
}
console.log('showMultiples(2,8) returns: ' + showMultiples(2,8));
console.log('showMultiples(3,2) returns: ' + showMultiples(3,2));
console.log('showMultiples(5,4) returns: ' + showMultiples(5,4));

3 个答案:

答案 0 :(得分:1)

&#13;
&#13;
function showMultiples(num, numMultiples) {
  // the accumulator (should be initialized to empty string)
  var str = "";
  for (i = 1; i < numMultiples; i++) {
    var result = num * i;
    // use += to append to str instead of overriding it
    str += num + " x " + i + " = " + result + "\n";
  }
  // return the result str
  return str;
}

var mulOf5 = showMultiples(5, 10);

console.log("multiples of 5 are:\n" + mulOf5);
&#13;
&#13;
&#13;

运算符+=将a值(右操作数)添加到左操作数的上一个值,并将结果存储在后面。所以这两行是相同的:

str = str + someValue;
str += someValue;

答案 1 :(得分:0)

你可以使用字符串连接:

var finalResult = ""
...in your loop...
finalResult += num + " x " + i + " = " + result+ "\n"

通常,您也可以只在数组中收集结果,并使用join附加它们。

var lines = [];
... in your loop:
lines.push(num + " x " + i + " = " + result);
... afterwards
console.log(lines.join("\n"));

答案 2 :(得分:0)

如果您想使用反引号作为模板字符串使用ES6语法,可以使用以下内容。这是一个更具可读性,并且正好在它有用的地方(只要你可以在任何地方使用ES6使用ES)。

&#13;
&#13;
function showMultiples(num, numMultiples){
  let result = '';

  for(let i = 1; i < numMultiples; i++){
    result += `${num} x ${i} = ${i * num}\n`;
  };

  return result;
}

console.log(showMultiples(2,8));
&#13;
&#13;
&#13;