Задать вопрос
Xeroxed
@Xeroxed
Senior javascript developer

Как лучше обойти массив, не выходя за его пределы?

Запрашиваю помощь в поиске наилучшего для данной ситуации варианта.
Есть некий участок "сферического кода в вакууме":

var Arr = [][];
Arr.length = 100;

for(var i=0; i<100; i++) {
    for(var j=0; j<100; j++) {
        if(Arr[i + 10][j + 10] === 1) {
            // что-то произойдёт
        }
    }
}


Дан двухмерный массив 100 х 100, при попытке подставить условие без проверки длины, явно превышающее предел массива, например: Arr[i+10][j+10] – получим соответствующую ошибку «cannot read property of undefined». Может быть существует какой-то иной способ избежать нагромождение проверок перед необходимым условием?
  • Вопрос задан
  • 354 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Почему "нагромождения"? Вам нужно всего лишь проверить есть ли:
if(Arr[i+10]&&Arr[i + 10][j + 10] === 1) {.....}

А вообще, можно устанавливать вот это 100 (оно же не из неоткуда берется?) через:
var s = Math.min(100, Arr.length);
Ответ написан
Комментировать
mmmaaak
@mmmaaak
Или прибавить функциональщины, воспользовавшись методом forEach. Там и индексы, и все остальное. Ну и если вы обращаетесь к элементу массива - проверку на его существование никто за вас делать не будет.
Ответ написан
@dmitryKovalskiy
программист средней руки
должно быть свойство length у массива. А если вам не до смерти нужные индексы i,j то попробуйте использовать циклы типа foreach
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы