Error cannot read property 0 of undefined

console.log(this.sights) returns an array with 20 objects that have a couple of properties like name , photos , references , etc. Currently I am trying to loop through these objects and display their name s and their photo_reference s. I do this like this:

This displays the sight.name . However, I get an error

"Error in render: "TypeError: Cannot read property ‘0’ of undefined"".

I tried manually accessing like this:

and it returns the photo_reference . So, I’m not mistaking the properties. So what am I doing wrong?

"ВКонтакте" — это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь собрана огромнейшая библиотека музыкальных композиций, аудиокниг, клипов, фильмов и прочего добра. Естественно, что все зарегистрированные участники с удовольствием пользуются предоставленными им возможностями. Однако в последнее время все чаще стали появляться жалобы по поводу "шуточек", которые выкидывает система. Все они сводятся к ошибке JavaScript Error "ВКонтакте", которая мешает нормальной работе видео и аудио-проигрывателей.

Типы ошибок JavaScript Error: краткий обзор

Эта незадача может существенно подпортить настроение тем, кто предвкушал насладиться приятной музыкой или скоротать время за вечерним кинопросмотром. Чтобы такого не допустить, давайте разберемся, как исправить JavaScript Error "ВКонтакте" собственными силами. Есть несколько возможных вариантов решения проблемы.

Для начала посмотрим, какого типа ошибки могут появиться:

  • initAddMedia is not defined;
  • cannot read property "length" of undefined;
  • cannot convert "opts.photos" to object;
  • cannot read property parentNode;
  • currentaudioid либо просто undefined.

Это отнюдь не весь перечень возможных сообщений об ошибке, но здесь перечислены наиболее часто встречающиеся варианты. Далее рассмотрим существующие способы их решения.

Способы борьбы с ошибками JavaScript

Если при попытке включить аудио или открыть видеофайл у вас ничего не получается, а в верхнем углу экрана появляется ненавистное сообщение о том, что произошла ошибка JavaScript Error "ВКонтакте", то попробуйте для начала сделать следующее:

  1. Воспользоваться другим браузером. Например, если на данный момент вы работаете в "Опере", то установите "Гугл Хром" или "Мазилу". Возможно, проблема исчезнет.
  2. Нажать на клавиатуре сочетание клавиш Ctrl+F5. В некоторых случаях это действие убирает ошибку.
  3. Проверить компьютер с помощью антивируса (Dr.Web или другого). Не забудьте предварительно обновить программу.
  4. Откройте меню "Мои настройки" со своей страницы "ВКонтакте" и установите галочку напротив пункта "Всегда использовать безопасное соединение". Возможно, это тоже поможет.
  5. Почистите кэши используемых браузеров, очистите кэш Java.
Читайте также:  Mid 144 pid 84

Если ни одно из этих действий не помогло и ошибка "ВКонтакте" JavaScript Error все еще не дает вам пользоваться всеми функциями ресурса, то следующий способ решения проблемы должен сработать.

Обнаружение и удаление вируса в системном файле hosts

Вероятно, причиной такого неприятного инцидента являются вирусы, закравшиеся в вашу компьютерную систему. Они работают хитро: делают записи в системном файле hosts, в результате чего блокируется доступ к некоторым сайтам (отсюда и ошибка JavaScript Error "ВКонтакте" при попытке воспользоваться данным сервисом). Следовательно, для того чтобы открыть доступ, нужно почистить соответствующий файл, то есть hosts. Сделать это можно в автоматическоим либо ручном режиме. Мы рассмотрим, как это сделать самостоятельно.

Инструкция по чистке файла "хостс"

  1. Заходим в "Мой компьютер" и открываем системную папку Widows/system32. В ней имеется папка драйверов drivers, в которой нам нужна та, что называется etc. Среди файлов, хранящихся в этой последней папке, будет нужный нам hosts. Открываем его с помощью программы "Блокнот" либо текстового редактора WordPad.
  2. Вы увидите содержимое этого файла в виде текстовой записи. При этом в исправном (незараженном вирусом) файле запись ограничивается следующими данными: 127.0.0.1.localhost.
  3. Если вы обнаружили, что помимо указанного текста в файле имеются и другие записи, то это не что иное, как мусор, оставленный хитроумным вирусом. Именно он не дает программам на сайте "ВКонтакте" нормально работать, блокируя доступ к ним.
  4. Нам нужно избавиться от лишних записей. Полностью очищаем документ (в целях лучшей безопасности), а нужное сообщение вводим заново. Сохраняем изменения и закрываем редактор.
  5. Теперь нужно перезагрузить компьютер, после чего ошибка должна исчезнуть. Попробуйте зайти на свою страничку в соцсети и прослушать аудиофайлы, а также открыть видео. Ошибка JavaScript Error "ВКонтакте" больше не появляется.
Читайте также:  Как зайти в биос на 10 винде

Этот способ самый надежный, но в то же время достаточно простой. Как правило, он помогает решить проблемы, связанные с ошибками JavaScript. Чтобы не допустить подобных неприятностей, проверьте работу своего антивируса. При необходимости обновите его или установите новый, ведь надежная защита компьютера — основа бесперебойной работы, в том числе и при пользовании сайтами во всемирной сети.

Другие типы ошибок JavaScript "ВКонтакте"

Помимо проблем с аудио и видеофайлами, эта социальная сеть может "порадовать" и рядом других, еще более нелепых ошибок JavaScript Error "ВКонтакте". Что делать, если не открываются диалоги, не отправляются сообщения и не прикрепляются комментарии к фотографиям — выдается ошибка addEventListener; не работает стена — wall is not defined; отсутствует доступ к другим важнейшим функциям. Этот список — лишь часть косяков системы или сбоев, в результате которых затрудняется использование популярного ресурса.

Варианты решения проблем JavaScript Error

Независимо от того, какая конкретно ошибка JavaScript у вас возникает, способы ее решения сводятся к одним и тем же действиям. Как правило, достаточно воспользоваться одним из описанных выше вариантов. Особенно стоит обратить внимание на переустановку/смену используемого браузера и чистку файла "хостс".

Также можно попробовать сделать сброс установленных параметров браузера (вкладка "Свойства/Дополнительно"). После этого потребуется перезагрузить компьютер. В некоторых случаях это простое действие помогает избавиться от всплывающей ошибки. Кроме того, необходимо проверит на вирусы всю операционную систему, возможно, они притаились где-либо в другом месте. Для этого нужно иметь мощный и исправно работающий антивирус.

Последняя "инстанция"

Если же с вашей машиной и системой все в порядке, но при попытке воспользоваться какими-то функциями популярного ресурса все равно возникает ошибка JavaScript Error "ВКонтакте", как исправить ее в этом случае? Дело, скорее всего, в самом сервисе. Самым лучшим решением будет обратиться за помощью в техническую поддержку сайта "ВКонтакте" и объяснить возникшую ситуацию. Вероятно, там смогут разрешить это недоразумение.

Читайте также:  Autodesk desktop app service

Самый главный совет — предпримите все от вас зависящее, чтобы обеспечить полную безопасность своей компьютерной системы. Регулярно обновляйте антивирус, а также по возможности используйте самые последние версии браузеров. Тогда подобные ошибки будут сведены к минимуму.

I have a drop down menu, and when I select the ‘All’ option, it gives me this error on the console:

So, I went to my script, function, line 70,character 81 :

here is the loadEditorGroups function :

I’m still learning JS. Why is this error being thrown? When I change the value of the item I want to retrieve from that editorGroups list it just gives me the same error but with the corresponding number. Your help would be appreciated, please let me know if I can supply further information. Thank you!

2 Answers 2

Your logic for this if-else block is probably wrong:

The program will enter the else if block when both:

  • the if condition is false , that is: ($scope.filter.list.searchBy == ‘GROUP’ && !$scope.filterScope.editorGroups) == false
  • the else if condition is true , that is: ($scope.filter.list.searchBy != ‘GROUP’) == true

We can take these two statements and simplify them:

  1. !($scope.filter.list.searchBy == ‘GROUP’ && !$scope.filterScope.editorGroups) && ($scope.filter.list.searchBy != ‘GROUP’)
  2. ($scope.filter.list.searchBy != ‘GROUP’ || $scope.filterScope.editorGroups) && ($scope.filter.list.searchBy != ‘GROUP’)
  3. ($scope.filter.list.searchBy != ‘GROUP’)

In step 2, I applied De Morgan’s law to simplify !(A && B) to (!A || !B) .
In step 3, I simplified the && , since (A || B) && A is the same as just A .

So really, all we know when we enter the else if block is that searchBy != ‘GROUP’ . We do not know anything about editorGroups , and indeed, it may be undefined !

What you’re probably looking for is: