我是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));
答案 0 :(得分:1)
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;
运算符+=
将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)。
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;