Здравствуйте!
Допустим имеем массив: поле в всем знакомой игре Сапер.
Данное поле состоит из элементов <img />. Необходимо, что бы при нажатии на пустую клетку - клетки стоящие рядом то же открывались если они пустые.
Вопрос: Как правильнее и где быстрее будет работать браузер
1. Представить массив игрового поля, в виде двумерного массива
for (x=0; x<=XxX; x++)
{
for (y=0; y<=YyY; y++)
{
var myElem = document.createElement('img');
document.getElementById('game').appendChild(myElem);
myElem.src = '......';
myElem.onclick = f_keyPress;
a_block[x][y] = myElem;
}
}
с таким соответственно легче работать и проще проверить, что бы при проверке не вылететь за края поля и не проверить несуществующего элемента.
2. Или одномерного
for (i=1; i<=(XxX * YyY); i++)
{
var myElem = document.createElement('img');
document.getElementById('game').appendChild(myElem);
myElem.src = '......';
myElem.onclick = f_keyPress;
}
myElem = document.getElementById('game')
a_block = myElem.getElementsByTagName('img');
Здесь что бы не мудрить с расчетами по проверке не выходит ли элемент за приделы поля я применил проверку на существование данного объекта:
if (typeof a_block[i-XxX-1] == 'object') {.......}