Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пустой массив при сохранении в localStorage (https://javascript.ru/forum/misc/65986-pustojj-massiv-pri-sokhranenii-v-localstorage.html)

kichkun 19.11.2016 13:06

Пустой массив при сохранении в 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);

}

Rise 19.11.2016 13:30

Цитата:

Сообщение от kichkun (Сообщение 435478)
console.log(leng); - выводит заполненный многомерный массив
console.log(JSON.parse(JSON.stringify(leng))); - массив уже пустой

И где это в коде и в той же последовательности?

kichkun 19.11.2016 13:58

Это просто проверка. В коде вторая строка закоментирована. Проблема в том, что ответ от Google Api уже в Json. Как это решить?

Rise 19.11.2016 14:33

Цитата:

Сообщение от kichkun (Сообщение 435481)
Проблема в том, что ответ от Google Api уже в Json.

А надо как? И код отформатируй.


Часовой пояс GMT +3, время: 02:49.