2017-01-04 2 views
3

У меня есть простая таблица умножения в JavaScript с двумя вложенными для петель:Таблица умножения в JavaScript

var result = '\n'; 
for (var i = 1; i < 11; i++) { 
    for (var j = 1; j < 11; j++) { 
     result += (i*j) + ' '; 
    } 
    result += '\n' 
} 

See screenshot of browser console results

Первого положение 1, но я хочу, чтобы начать с пустой первой позицией , или "X", например, так, что результат 1 * 1 также отображается как здесь

Screenshot of desired result

+0

Результат должен быть напечатан в консоли в этом формате или вы хотеть показать, что в браузере? – Tushar

+0

Я не получаю его, вы хотите его в таблице? –

+0

Вы можете определить 'var result = 'X''; Цикл добавляется к 'result' –

ответ

4
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' 
} 

Выход:

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 
+0

Я люблю функцию баффа! Это сработает! – StarflameDia

+0

Мне нравится логика здесь. Я использовал что-то подобное, используя php и smarty для клиента при создании этой таблицы умножения https://math.tools/table/multiplication. Спасибо за вдохновение. – dors

+0

Я не большой поклонник добавления пустой строки в число как преобразование строки. Для явных целей я предпочитаю использовать buff ((j.toString()) вместо buff ((j + '') и buff ((i * j) .toString() вместо buff ((i * j + '') В противном случае, потрясающе - спасибо! – StarflameDia

Смежные вопросы