#javascript
Вопрос:
Я пытаюсь решить эту проблему с кодированием, Результат, который мне нужен
1 8 9 16 17 2 7 10 15 18 3 6 11 14 19 4 5 12 13 20
логика для colindex, которая имеет четный номер строки * colIndex 1 // 4*0 1 что дает 1 для столбца 0 строка 1
логика для colindex с нечетным номером строки*(colIndex 1); // 4*(1 1) что дает 8 для столбца 2 строки 1
const rowsNumber = 4; const columnsNumber = 5; for(let i = 0; ilt;rowsNumber; i ) { for(let j = 0; jlt;columnsNumber; j ) { if(j % 2 == 0) { console.log(rowsNumber * j 1); } else { console.log(rowsNumber * (j 1)) } } }
Я получаю следующий результат
1 8 9 16 17 1 8 9 16 17 1 8 9 16 17 1 8 9 16 17
Что я делаю не так?
Ответ №1:
Ваша логика справедлива только для первой строки. Вам также придется рассмотреть RowIndex. Фактическая логика Для четных строк : rowsNumber * (colIndex 1) — RowIndex Для нечетных строк : rowsNumber * colIndex 1 RowIndex, поэтому код будет следующим
const rowsNumber = 4; const columnsNumber = 5; for(let i=0;ilt;rowsNumber;i ) { for(let j=0;jlt;columnsNumber;j ) { if(j%2 == 0) { console.log(rowsNumber*j 1 i); } else { console.log(rowsNumber*(j 1)-i) } } }
Это дает результат в виде :
1 8 9 16 17 2 7 10 15 18 3 6 11 14 19 4 5 12 13 20