Javascript Sum return 只有一次迭代

Javascript Sum return only one iteration

Codeware Challenge

所以这里发生了什么我正在尝试创建一个函数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'));