问题
我有一个带有两个嵌套 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]
- [1] 1 2 3 4 5 6 7 8 9 10
- [2] 2 4 6 8 10 12 14 16 18 20
- [3] 3 6 9 12 15 18 21 24 27 30
- [4] 4 8 12 16 20 24 28 32 36 40
- [5] 5 10 15 20 25 30 35 40 45 50
- [6] 6 12 18 24 30 36 42 48 54 60
- [7] 7 14 21 28 35 42 49 56 63 70
- [8] 8 16 24 32 40 48 56 64 72 80
- [9] 9 18 27 36 45 54 63 72 81 90
- [10] 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] [9] [10]
- [1] 1 2 3 4 5 6 7 8 9 10
- [2] 2 4 6 8 10 12 14 16 18 20
- [3] 3 6 9 12 15 18 21 24 27 30
- [4] 4 8 12 16 20 24 28 32 36 40
- [5] 5 10 15 20 25 30 35 40 45 50
- [6] 6 12 18 24 30 36 42 48 54 60
- [7] 7 14 21 28 35 42 49 56 63 70
- [8] 8 16 24 32 40 48 56 64 72 80
- [9] 9 18 27 36 45 54 63 72 81 90
- [10] 10 20 30 40 50 60 70 80 90 100
复制代码
|