JS乘法表

234 阅读1分钟
/**
 * 乘法表
 * @param number n 开始
 * @param number m 结束
 */
function table(n, m) {

  if (n <= 0) {
    throw 'n 不能小于等于0';
  }

  const res = [];

  const maxLen = m - n + 1;
  const recursionTable = (x) => {
    if (x > m) {
      return;
    }
    const xlen = (x - n + 1);
    const len = xlen >= maxLen? maxLen: xlen;
    const arr = Array.from({length: len}, (v, k) => k + n); // 结果 [1, 2, 3, 4] | [2, 3, 4]
    const row = [];
    arr.map((v, k) => row.push(`${v} * ${x} = ${v * x}`));
    res.push(row);
    recursionTable(x + 1);
  }
  recursionTable(n);

  res.map((v) => {
    console.log(v.join(' '))
  })
}

table(6, 9)

结果:

6 * 6 = 36
6 * 7 = 42 7 * 7 = 49
6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81