#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(), но это не имеет никакого смысла. Отсюда неожиданное ‘(‘. Кроме того, отсутствует точка с запятой после инструкции.