У меня есть следующий код теста:Как можно иметь массив с длиной 0, но имеющий контент?
console.log('AA',slider);
console.log('AB',slider.length);
он возвращает следующее хромированной консоли.
AA Array[53]
AB 0
я добавил тестовый код, потому что slider[5]
всегда возвращался с undefined
, даже если консоль показывает, что это значение есть.
вот упрощенная версия скрипта инициализации. весь код довольно длинный, а слайдер - это объект. Код для объекта работает, тестовый скрипт позже пытается манипулировать определенными положениями ползунка на основе данных возврата ajax.
var slider=[];
for (var uid=1;uid<50;uid++) {
slider[uid]=new Slider(.........);
}
var slider={};
for (var uid=1;uid<50;uid++) {
slider[uid]=new Slider(.........);
}
возвращает AA { 1: {м а: ...., б: ...., C: ...., г:. ... часов: .... }, 2: .....
получает все, вплоть до 49
Не могли бы вы вывести код, который инициализирует 'слайдер'? Спасибо – Christos
'на основе данных возврата ajax' - так же, как я думал ... асинхронный код ... измените ваш' console.log ('AA', слайдер), 'to' console.log ('AA', slider.slice()); '- и вы увидите, что он пуст ... ваша проблема, скорее всего, будет зная, как использовать результаты асинхронного вызова - см. https://stackoverflow.com/questions/14220321/how-do-return -a-response-from-a-асинхронный вызов –
Невозможно воспроизвести https://jsfiddle.net/b3pgam6d/. – guest271314