2014-10-31 1 views
0

Узор должен быть следующимJS цикл, который увеличивает каждые 3 петли, но первое число увеличивается на единицу

k_1_1 k_1_2 k_1_3

k_2_1 k_2_2 k_2_3

можно создать первый блок, но не могу понять, как создать цикл для продолжения.

Любая помощь будет оценена по достоинству.

<script> 
for (var x = 1; x <= 3; x++){ 
    var x2 = 0; x2 <=3; x2++; 
    var thisKName = "k_" + x2 + "_" + x + "<br>"; 
    document.write(thisKName); 
} 
</script> 

ответ

0

Гнездо петли:

for (var x = 1; x <= 3; x++){ 
    for(var x2 = 0; x2 <=3; x2++){ 
     var thisKName = "k_" + x + "_" + x2 + "<br>"; 
     document.write(thisKName); 
    } 
} 
+0

Я действительно чувствую себя дерьмом, большое вам спасибо. – user2680821

+0

Имейте в виду, что многократные вложенные петли могут быть плохими для производительности при использовании больших наборов данных. –

+0

Простой надзор. Если это самое худшее, что происходит сегодня, вы счастливый человек. – ethrbunny

1

Инициализировать переменную счетчика вне для цикла. Затем в цикле for есть инструкция if, которая проверяет, делится ли значение x на этом шаге на 3. x % 3 = 0 означает, что нет остатка и делится на 3. Увеличьте свою переменную счетчика.

var i = 0; 
for(var x = 1; x <= 3; x++) { 
    if((x - 1) % 3 == 0) { 
     i = i + 1; 
    } 
    var thisKName = "k_" + x + "_" + i + "<br>"; 
    document.write(thisKName); 
} 

РЕДАКТИРОВАТЬ

Обновленной функцию, чтобы включать в себя document.write и избежать i от приращения до 2, когда x = 3 и испортить структуру.

+1

Для полноты вам следует попытаться добавить часть document_write, но я собирался опубликовать тот же ответ, когда увидел вашу. Оператор модуля ('%') - это действительно способ. –

+0

Обновлено. Спасибо, что указали это. – Paul

+0

Теперь у вас есть ошибка в вашем коде, вы использовали '' 'для многих. –

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