Если вы зацикливаетесь и получаете доступ к вложенным объектам:
if(!data)
return;
while(data.length)
{
var tweet_data = data.shift();
/* do some work */
if(!tweet_data|| !tweet_data.retweeted_status)
continue;
var retweeted_status = tweet_data.retweeted_status;
/* do your other work */
}
В этом цикле больше не нужно использовать индексы массива, что не является наиболее эффективным, если для чего-то конкретно не нужен индекс. Вместо этого он выталкивает первый элемент из массива и напрямую использует этот объект. Внутренние элементы цикла могут затем проверить наличие свойства в tweet_data
.
Я стараюсь избегать использования более 1 уровня разыменования по двум причинам (например, objA.child.property
):
1) Вы можете проверить существование объекта с самого начала и, если он не существует, выпрыгнуть или назначить значения по умолчанию.
2) Каждый раз, когда JavaScript должен получить доступ к методу property
, он сначала должен найти child
с objA
, а затем получить доступ к property
. Может быть медленным в больших циклах.