52ky 发表于 2022-5-3 12:13:02

JavaScript 中的乘法表

问题
我有一个带有两个嵌套 for 循环的简单 JavaScript 乘法表:
var result = '\n';
for (var i = 1; i < 11; i++) {
    for (var j = 1; j < 11; j++) {
      result += (i*j) + ' ';
    }
    result += '\n'
}
第一个位置是 1,但我希望它以空的第一个位置或“X”开头。例如,这样 1*1 的结果也将如下所示

回答
var result = 'x ';
for (var i = 0; i < 11; i++) {

    for (var j = 0; j < 11; j++) {

      if(i == 0 && j > 0){
          result += '[' + j + ']';
      }
      else if(j == 0 && i>0){
          result += '[' + i + '] ';
      }
      else if(i>0 && j>0){
      result += (i*j) + ' ';
      }
    }
    result += '\n'
}

console.log(result);

输出:

x
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

var result = ' x   ';

function buff(val){
var buff = '';
var pad = 4 - val;
    while( pad-- > 0 )
            buff += ' ';            
return buff;
}

for (var i = 0; i < 11; i++) {

    for (var j = 0; j < 11; j++) {

      if(i == 0 && j > 0){
          result += '[' + j + ']' + buff((j+'').length+2);
      }
      else if(j == 0 && i>0){
          result += '[' + i + ']';
      }
      else if(i>0 && j>0){
      result += buff((i*j+'').length ) + i*j;
      }
    }
    result += '\n'
}
Output: x   
   1   2   3   4   5   6   7   8   910
   2   4   6   8101214161820
   3   6   912151821242730
   4   81216202428323640
   5101520253035404550
   6121824303642485460
   7142128354249566370
   8162432404856647280
   9182736455463728190
102030405060708090 100



页: [1]
查看完整版本: JavaScript 中的乘法表