Javascript Sum return 只有一次迭代
Javascript Sum return only one iteration
所以这里发生了什么我正在尝试创建一个函数return我在函数参数中输入的数字*我期望的循环迭代次数
// 1 * 5 = 5
// 2 * 5 = 10
// 3 * 5 = 15
// 4 * 5 = 20
// 5 * 5 = 25
// 6 * 5 = 30
// 7 * 5 = 35
// 8 * 5 = 40
// 9 * 5 = 45
// 10 * 5 = 50
但我只得到// 1 * 5 = 5
我知道 return 停止循环迭代,但我不知道如何让循环继续
function multiTable(number) {
//loop from 1 to 10
for(let i = 1; i <= 10; i++){
//create a string with the calculation
let sum = (`${i} * ${number} = ${number * i}\n`);
//return the sum
return sum
//this is where the error happen it only return the first iteration (1 * 1 = 1)
// i expect it to return 1 * 1 = 1, 1 * 2 = 2 all the way up to 10
}
}
multiTable(5);
您需要将 return
语句从 for
循环中拉出。此外,您还需要在 for
循环范围之外维护 sum
,否则每次都会覆盖它。以下应该做这两件事。
function multiTable(number) {
let sums = "";
for(let i = 1; i <= 10; i++){
sums += `${i} * ${number} = ${number * i}\n`;
}
return sums;
}
console.log(multiTable(5));
这是一个很好的应用程序 generator function:
function* multiTable(number) {
for (let i = 1; i <= 10; i++) {
yield `${i} * ${number} = ${number * i}`;
}
}
console.log(Array.from(multiTable(5)).join('\n'));
所以这里发生了什么我正在尝试创建一个函数return我在函数参数中输入的数字*我期望的循环迭代次数
// 1 * 5 = 5
// 2 * 5 = 10
// 3 * 5 = 15
// 4 * 5 = 20
// 5 * 5 = 25
// 6 * 5 = 30
// 7 * 5 = 35
// 8 * 5 = 40
// 9 * 5 = 45
// 10 * 5 = 50
但我只得到// 1 * 5 = 5
我知道 return 停止循环迭代,但我不知道如何让循环继续
function multiTable(number) {
//loop from 1 to 10
for(let i = 1; i <= 10; i++){
//create a string with the calculation
let sum = (`${i} * ${number} = ${number * i}\n`);
//return the sum
return sum
//this is where the error happen it only return the first iteration (1 * 1 = 1)
// i expect it to return 1 * 1 = 1, 1 * 2 = 2 all the way up to 10
}
}
multiTable(5);
您需要将 return
语句从 for
循环中拉出。此外,您还需要在 for
循环范围之外维护 sum
,否则每次都会覆盖它。以下应该做这两件事。
function multiTable(number) {
let sums = "";
for(let i = 1; i <= 10; i++){
sums += `${i} * ${number} = ${number * i}\n`;
}
return sums;
}
console.log(multiTable(5));
这是一个很好的应用程序 generator function:
function* multiTable(number) {
for (let i = 1; i <= 10; i++) {
yield `${i} * ${number} = ${number * i}`;
}
}
console.log(Array.from(multiTable(5)).join('\n'));