Неожиданный токен (ошибка

#javascript

#javascript

Вопрос:

привет, кто-нибудь может помочь мне отладить небольшую ошибку, которую, кажется, пропускают мои глаза. ошибка: непредвиденный (ошибка. Корректен ли мой массив syntex?

 function SourceClusting()
{
    // grabbing count
    var table = document.getElementById('OSDataCount');
    var counter= table.rows[1].children[0].innerHTML
    // putting all variable into arrays
    var latitude()
    var longitude()
    var i

    var marker =[];

    // placing values into arrays
    for (i=1;i == counter;i  )
        {
        longitude[i]=table.rows[i].children[6].innerHTML;
        latitude[i]=table.rows[i].children[5].innerHTML;

        marker[i]=new GMarker(new GLatLng(longitude[i],latitude[i])); 

        }

    var markerCluster = new MarkerClusterer(map, marker);


}
  

приветствия

Комментарии:

1. попробуйте использовать jslint.com для проверки синтаксиса

2. var latitude(), var longitude()? являются ли эти переменные? попробуйте удалить () и заменить на ;

Ответ №1:

Проблемы заключаются в этих строках:

 var latitude()
var longitude()
  

Вы имеете в виду

 var latitude;
var longitude;
  

или, возможно

 var latitude = [];
var longitude = [];
  

поскольку вы, похоже, рассматриваете их как массивы.

Комментарии:

1. Затем это приведет к ошибке при достижении начальной строки longitude[i]= .

Ответ №2:

Довольно много вещей:

  • Вам придется использовать parseInt() строку, полученную из var counter = ... , поскольку строку нельзя использовать для сравнения с целыми числами так, как вам хотелось бы.
  • var latitude = () должно быть var latitude = [] , поскольку это массив, не забудьте эти точки с запятой!
  • Обычно в цикле используется знак «меньше, чем», а не знак равенства == .
  • Вы можете уплотнить цикл, инициализировав i внутри него.

Попробуйте этот новый, возможно, работающий код:

 function SourceClusting() {
    // grabbing count
    var table = document.getElementById('OSDataCount');
    var counter= parseInt(table.rows[1].children[0].innerHTML, 10);
    // putting all variable into arrays
    var latitude = [];
    var longitude = [];

    var marker =[];

    // placing values into arrays
    for (var i = 0; i < counter; i  )
        {
        longitude[i]=table.rows[i].children[6].innerHTML;
        latitude[i]=table.rows[i].children[5].innerHTML;

        marker[i]=new GMarker(new GLatLng(longitude[i],latitude[i])); 

        }

    var markerCluster = new MarkerClusterer(map, marker);


}
  

Ответ №3:

var latitude() это бессмыслица. Я подозреваю, что вы имеете в виду var latitude = [];

(С аналогичным исправлением для следующей строки)

Ответ №4:

Если вы пытаетесь создать экземпляр массива, вместо:

 var latitude();
  

это должно быть:

 var latitude = [];
  

Ответ №5:

Вы объявляете var latitidue(), но это не имеет никакого смысла. Отсюда неожиданное ‘(‘. Кроме того, отсутствует точка с запятой после инструкции.