2015-11-28 3 views
0

У меня есть циклпечати символов для цикла

for (var i=0; i < x; i++){ 
    // .. 
} 

Я хочу, чтобы обернуть каждые 8 ​​чисел между двумя символами. Так что мой результат будет выглядеть примерно так:

< 0 1 2 3 4 5 6 7 > < 8 9 10 11 12 13 14 15 > < 16 17 18 19 20 21 22 23 > < ... 

Мое решение было

if(i == 0) console.info('<'); 
if(i == 7) console.info('>'); 
if(i == 8) console.info('<'); 
if(i == 15) ... 

Но это было бы довольно многословен. Возможно ли сделать эту задачу проще?

ответ

0
console.info('<'); 
for (var i=0; i < x; i++){ 
    if ((i > 0) && (i %8) == 0) { 
     console.info('><'); 
    } 
} 
console.info('>'); 

В принципе, то, что мы делаем здесь, говорит, если я разделить на 8 имеет остаток 0, затем добавьте скобки. Таким образом, каждые 8 ​​чисел.

Надеюсь, это поможет!

+0

Это неправильно печать '><', когда я == 0 –

+0

Спасибо! Исправленный. – Kabir

0

Несомненно.

var iterations = 3; 
for (var i = 0; i < iterations; i++) { 
    console.log("<"); 
    for (var j = i * 8; j < (i * 8) + 8; j++) 
     console.log(j); 
    console.log(">"); 
} 
0

Попробуйте это:

(function() { 
 
    var result = ""; 
 
    var x = 25; 
 
    for (var i = 0; i < x; i++) { 
 
    if (i % 8 == 0) { 
 
     result += "> <" 
 
    } 
 
    result += " " + i + " "; 
 
    } 
 
    result += " >" 
 
    console.log(result.substring(1)); 
 
})()

2

Вы можете проверить, если i падает между 7 и 8 с помощью (мод) оператора %. x % y возвращает остаток, если деление x на y. Например:

0 % 4 == 0

1 % 4 == 1

2 % 4 == 2

3 % 4 == 3

4 % 4 == 0

5 % 4 == 1

Решение с помощью этого метода будет выглядеть следующим образом:

var limit = 64; 
console.info('< '); 
for (var i = 0; i < limit; i++) { 
    if (i % 8 == 0 && i > 0) { 
    console.info('> <'); 
    } 
    console.info(i, ' '); 
} 
console.info('>'); 
+0

Вы также можете попробовать 'console.log (i, '')'. – Rajesh

+0

Хотя ваши 'console.info()' s находятся не во всех оптимальных местах, это лучший ответ здесь до сих пор. – bowheart

0

Мое предложение,

var limit = x/8; 
var chunk; 
for (var i=0; i<limit; i++) { 
    console.log('<'); 
    chunk = i*8; 
    for (var j=chunk; j<chunk+8; j++) 
     console.log(j); 
    console.log('>'); 
} 
Смежные вопросы