javascript
  • arrays
  • 2016-09-13 12 views 0 likes 
    0

    我已經充滿了緯度和經度對的數組推這樣爲什麼我的JavaScript浮點數被切分?

    doneDotsA.push(lat+"|"+lon); 
    

    的值可以像51.5或-0.11666666666666667等

    然後該陣列被存儲在cookie中爲一個數組。

    當我嘗試讀取cookie內容,它看起來像這樣,當在研究它

    alert('doneDotsA='+doneDotsA.toString()); 
    

    產生的結果是這樣的:

    doneDotsA = 51.5 | -0.11666666666666667

    到目前爲止好。然而,當我嘗試提取這樣

    for (var t = 0; t < doneDotsA.length; t++) { 
        alert('val='+doneDotsA[t]); 
    } 
    

    警報顯示的值 'VAL = 5',然後 'VAL = 1',則 'VAL ='。然後'val = 5'等。不知怎的,一次只能讀取一個字符,而不是像我期望的那樣返回完整的數字。

    是否將數組保存到cookie中對數字做些什麼?

    有什麼想法?

    +1

    你的循環正在逐步穿過字符串。 –

    +0

    當您在考慮'index'迭代'string'時,返回'string'of指定的'index'中的每個字符, 使用'String#split'。 – Rayon

    +1

    在你的提取中,'doneDotsA'似乎不是一個數組。你能告訴我們整個代碼嗎? – Bergi

    回答

    1

    存儲在cookie作爲數組

    Cookies是always stored and retrieved as a string,除非你使用自定義代碼將它重建成事實後的數組。

    +0

    是的,它存儲爲一個字符串。 var str = readCookie('doneDots'); doneDotsA = str.split( 「|」);把它變回一個數組 – user2016210

    0

    像這樣的解決方案可以把你的經度和經度,並把它們放入一個JSON對象序列化和存儲在cookie中。然後,您可以在網站加載時將它們解析爲對象。

    var coords = { 
        points:[ 
        {lat:12.4444446,lon:44.55555}, 
        {lat:12.4444446,lon:44.55555} 
        ] 
    }; 
    var serialized = JSON.stringify(coords); 
    toStore(serialized); 
    

    然後,您可以將其設置爲本地存儲或任何可以存儲字符串的地方。

    var myLoaded = fromStore(); 
    var coords = JSON.parse(myLoaded); 
    coords.points.each(function(coord) { 
        // do something with points. 
    }); 
    

    然後,您應該可以對您保存的點進行操作。

    一注意:你可能想要檢查myLoaded是不是一個空字符串或包裝解析在try/catch塊。一個結構不良的結構會拋出異常。

    相關問題