Я думаю, что вы ошибочно принимаете JavaScript за функциональность PHP. JavaScript не имеет циклов foreach
. JavaScript имеет for in
, что вы неправильно используете, и нормальные циклы for
. Используйте стандартный цикл for
при работе с массивами. Вам нужно будет использовать цикл for in
с литералами объекта, потому что индекс не является простотой увеличивающегося положительного целого числа.
В JavaScript цикл for
имеет 3 аргумента, разделенных точкой с запятой следующим образом:
* начальная позиция инкремента (необязательно, если переменная ранее определена с 0 или положительным целым числом)
* конечная позиция инкремента
* метод приращения
В следующих примерах arrayName
- это значение, которое я составил для имени массива:
for (; a < arrayName.length; a += 1) {
for (a = x + 1; a < arrayName.length + 3; a += 2) {
Аргумент цикла for in
состоит из двух обязательных частей и третьей части для предотвращения ошибок с использованием условия if
:
* Значение индекса для поиска
* Название контейнера для поиска
* Третья часть - это if
условие
В следующем примере будет возвращено значение, указанное в индексе «book» литерала объекта objectName. objectName
- это имя, которое я сделал для литерала объекта примера:
for ("book" in objectName) {
if (objectName.hasProperty("book")) {