Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.07.2017, 17:28
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

двухмерный массив(поле)
Здравствуйте, нашел вот такой код :
for (var i=0; i<9; i++) {
document.getElementById('game').innerHTML+='<div class="block"</div>';
}

Он вставляет девять блоков в 'game'.
Хочу сделать, чтобы двухмерный массив вставлял также эти блоки, допустим три на три, ну как в крестики-нолики, пишу это:
function pole() {
	for (var i=0; i<3; i++) {
		kvadratiki[i]=[];
		for (var j=0; j<i; j++) {
			kvadratiki[i][j] = document.getElementById('game').innerHTML+='<div class="block"></div>';
		};	
	};
};

он рисует только три блока, а если делаю j<3, тогда всё нормально, вопрос почему нельзя привязать j к i

Последний раз редактировалось shoopik, 30.07.2017 в 17:31.
Ответить с цитированием
  #2 (permalink)  
Старый 30.07.2017, 17:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от shoopik
вопрос почему нельзя привязать j к i
А вы как думаете? Вместо kvadratiki[i][j] = .... выводите в консоль значения j и i, наступит прозрение.
Ответить с цитированием
  #3 (permalink)  
Старый 30.07.2017, 17:52
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от laimas Посмотреть сообщение
А вы как думаете? Вместо kvadratiki[i][j] = .... выводите в консоль значения j и i, наступит прозрение.
если j<i, тогда выводит i=3 j=2, проблема в том, что j=2 ?
если я правильно понял, при написании заместо 'j++' - '++j' должно наращиваться до 3, но все равно 2 там.
если ставлю (var j=0; j<(i+1); j++) - получается j=3, но тогда выводит всего 6 блоков вместо 9
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2017, 18:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от shoopik
если j<i, тогда выводит i=3 j=2, проблема в том, что j=2 ?
Проблема в том, что i изменяется, что по выводу в консоли не понятно что-ли, что будет всего три итерации и почему?

Что прописать во внутреннем цикле j<3; религия не позволяет и надо извращаться или что?
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2017, 18:26
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от laimas Посмотреть сообщение
Проблема в том, что i изменяется, что по выводу в консоли не понятно что-ли, что будет всего три итерации и почему?

Что прописать во внутреннем цикле j<3; религия не позволяет и надо извращаться или что?
ну я выводил console.log(i) и также с (j), либо [i], у меня выводилось просто 3, не понял я по консоли.
Сообщение от laimas Посмотреть сообщение
Что прописать во внутреннем цикле j<3; религия не позволяет и надо извращаться или что?
Да просто не понял почему не работает с i...
Ответить с цитированием
  #6 (permalink)  
Старый 30.07.2017, 18:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от shoopik
Да просто не понял почему не работает с i...
<div id="as"></div>
<script>
for (var i=0; i<3; i++) {
    for (var j=0; j<i; j++) {
        document.getElementById('as').innerHTML +=  'j = ' + j + ', i = ' + i + ', j < i = ' + (j<i) + '<br>';
    } 
}
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 30.07.2017, 18:41
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от laimas Посмотреть сообщение
<div id="as"></div>
<script>
for (var i=0; i<3; i++) {
    for (var j=0; j<i; j++) {
        document.getElementById('as').innerHTML +=  'j = ' + j + ', i = ' + i + ', j < i = ' + (j<i) + '<br>';
    } 
}
</script>
спасибо ))
Ответить с цитированием
  #8 (permalink)  
Старый 30.07.2017, 18:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<div id="as"></div>
<script>
function pole(side) {
    for (var i=0; i<side; i++) {
        for (var j=0; j<side; j++) {
            document.getElementById('as').innerHTML +=  'j = ' + j + ', i = ' + i + ', j < i = ' + (j<side) + '<br>';
        } 
    }
}

pole(3);
</script>


Иначе от функции никакой пользы.
Ответить с цитированием
  #9 (permalink)  
Старый 30.07.2017, 18:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

shoopik,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div.block {
    height: 50px;
    width: 50px;
    background-color: #FFFF00;
    margin: 2px;
  }
 #game{
   display: flex;
   background-color: #0000FF;
   width: 162px;
 }

  </style>


</head>

<body>
<div id="game"></div>
 <script>
function pole(rows, cols, el) {
  el = document.getElementById(el)
  for (; rows--;) {
    var div = document.createElement("div");
    for (var j=0; j<cols; j++) {
      var d = div.cloneNode();
      d.classList.add("block");
      div.appendChild(d);
    };
    el.appendChild(div)
  };
};
 pole(3, 3, "game")
  </script>
</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 30.07.2017, 19:15
Аспирант
Отправить личное сообщение для shoopik Посмотреть профиль Найти все сообщения от shoopik
 
Регистрация: 02.07.2017
Сообщений: 83

Сообщение от рони Посмотреть сообщение
function pole(rows, cols, el) {
  el = document.getElementById(el)
  for (; rows--;) {
    var div = document.createElement("div");
    for (var j=0; j<cols; j++) {
      var d = div.cloneNode();
      d.classList.add("block");
      div.appendChild(d);
    };
    el.appendChild(div)
  };
};
 pole(3, 3, "game")
И вам спасибо за интересный код
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двухмерный массив shoopik Общие вопросы Javascript 2 25.07.2017 12:58
Не получается задать двухмерный массив greatilya Общие вопросы Javascript 2 04.08.2010 11:01