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». Может быть существует какой-то иной способ избежать нагромождение проверок перед необходимым условием?
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы