我目前正在尝试完成intro2Javascript课程的作业。这个问题基本上要求我返回2个参数(num,numMultiple)的倍数的字符串。每次它将值i = numMultiple
递增到5 x 1 = 5\n
5 x 2 = 10\n
5 x 3 = 15\n
5 x 4 = 20\n
。例如:
function showMultiples(num, numMultiples) {
var result;
for (i = 1; i <= numMultiples; i++) {
result = num * i
multiples = "" + num + " x " + i + " = " + result + "\n"
return (multiples)
}
}
这是我的尝试:
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));
console.log('\n');
...并且因为分配带有预先编写的控制台日志:
showMultiples(2,8) returns: 2 x 1 = 2
Scratchpad/1:59:1
showMultiples(3,2) returns: 3 x 1 = 3
Scratchpad/1:60:1
showMultiples(5,4) returns: 5 x 1 = 5
这是我的输出:
re.findall('<continue rvcontinue="([^"]+)"',joan)
更新
答案 0 :(得分:2)
你做错了两件事:
1)你在循环第一次迭代后返回
2)您正在分配多个而不是附加到它。
由于您要收集所有值,然后首先显示最终结果,我将所有值添加到数组中,然后使用unshift()
将最终元素(结果)添加到数组的开头数组。然后我使用join()
返回所需数组的字符串表示。
function showMultiples(num, numMultiples) {
var result;
var multiples = [];
for (let i = 1; i <= numMultiples; i++) {
result = num * i
multiples.push("" + num + " x " + i + " = " + result + "\n")
}
multiples.unshift(multiples[multiples.length-1]);
return (multiples.join(''))
}
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));
console.log('\n');
答案 1 :(得分:1)
你需要声明所有变量,因为没有你得到全局变量(除此之外它在'strict mode'
中不起作用)。
第二点是使用带有空字符串的multiples
来收集所有中间结果,并在函数末尾返回该值。
为了保留最后的结果,您可以使用另一个变量并在结尾追加该值以便返回。
function showMultiples(num, numMultiples) {
var i,
result,
multiples = "",
temp = '';
for (i = 1; i <= numMultiples; i++) {
result = num * i;
temp = num + " x " + i + " = " + result + "\n";
multiples += temp;
}
return temp + multiples;
}
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));
答案 2 :(得分:0)
正如其他答案所说,你的问题是多方面的。
您正在清除每次迭代并存储新值,但您不希望这样,您希望添加新结果,并且这样做是为了使用此代码:
multiples = multiple + "" + num + " x " + i + " = " + result + "\n"
可以在其他人回答的内容中进行压缩:
multiples += "" + num + " x " + i + " = " + result + "\n"
可能你已经知道了,但要确保:
a += b ---> a = a + b
a -= b ---> a = a - b
a *= b ---> a = a * b
还有更多。