Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2016, 13:06
Новичок на форуме
Отправить личное сообщение для kichkun Посмотреть профиль Найти все сообщения от kichkun
 
Регистрация: 19.11.2016
Сообщений: 2

Пустой массив при сохранении в localStorage
Добрый день.
Помоги, пожалуйста.
Возникла такая проблема.
Есть некоторая функция, которая сохраняет ответ от Google Api с содержанием маршрута в массив. Каждый ответ - это массив. Таким образом получается многомерный массив.
Далее идет попытка записи в localStorage.
console.log(leng); - выводит заполненный многомерный массив
console.log(JSON.parse(JSON.stringify(leng))); - массив уже пустой

исходный код ниже.
Как это исправить?


function setDirectionByAllPoints(){
var l=0;
l=arrLat.length;
var leng=new Array(); //массив отрезков одного пути
kolroutes=Number(localStorage.kolroutes);
alert(l);
for (i=1;i<l;i++)
{
(function() {
var directionsDisplay = new google.maps.DirectionsRenderer();
var directionsService = new google.maps.DirectionsService();
directionsDisplay.setMap(map);
directionsDisplay.setOptions( { suppressMarkers: true, suppressInfoWindows: true } );
directionsDisplay = new google.maps.DirectionsRenderer();
var request = {
origin: new google.maps.LatLng(arrLat[i-1],arrLng[i-1]), //точка старта
destination: new google.maps.LatLng(arrLat[i],arrLng[i]), //точка финиша
unitSystem: google.maps.UnitSystem.METRIC,
travelMode: google.maps.DirectionsTravelMode.WALKING //режим прокладки маршрута
};
directionsService.route(request,

(function(i) {
return function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
leng[i-1]=response; //stringify
directionsDisplay.setDirections(response);
}
}
})(i)

);
directionsDisplay.setMap(map);
})(i)
}
clearOverlays();
//console.log(JSON.parse(JSON.stringify(leng)));//"отрезки: "
console.log(leng);
console.log(typeof(leng));
localStorage.setItem(kolroutes,JSON.stringify(leng ));
kolroutes=kolroutes+1;
arrLat=new Array();
arrLng=new Array();
localStorage.setItem("kolroutes",kolroutes);

}
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2016, 13:30
Аватар для Rise
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,448

Сообщение от kichkun Посмотреть сообщение
console.log(leng); - выводит заполненный многомерный массив
console.log(JSON.parse(JSON.stringify(leng))); - массив уже пустой
И где это в коде и в той же последовательности?
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2016, 13:58
Новичок на форуме
Отправить личное сообщение для kichkun Посмотреть профиль Найти все сообщения от kichkun
 
Регистрация: 19.11.2016
Сообщений: 2

Это просто проверка. В коде вторая строка закоментирована. Проблема в том, что ответ от Google Api уже в Json. Как это решить?
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2016, 14:33
Аватар для Rise
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,448

Сообщение от kichkun Посмотреть сообщение
Проблема в том, что ответ от Google Api уже в Json.
А надо как? И код отформатируй.

Последний раз редактировалось Rise, 19.11.2016 в 14:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стирается массив при выходе из each skeef jQuery 6 29.08.2012 23:13
Подружить два скрипта (скроллер+скрипт эффекта при наведении) Che jQuery 26 29.08.2012 10:59
Проблема при воспроизведении аудио при использовании jplayer nemish Events/DOM/Window 0 01.12.2011 15:15
getAllResponseHeaders() и status имеют смысл только при readyState==4? mister_maxim AJAX и COMET 7 27.03.2011 19:08
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28