簡體   English   中英

Json對象被推入javascript數組

[英]Json object pushed into javascript array

我有這個javascript數組:

var data = ([

      ['Price', 'Time'],
      ['1.10661',  1467923348, ],
      ['1.10675',  1467923349, ],
      ['1.10681',  1467923350, ],
      ['1.10690',  1467923351, ],

    ]);

我使用ajax向我的服務器發送請求,並且我將這個json對象作為響應:

[{"PRICE":"1.10662","TIME":"1467923352"},{"PRICE":"1.10663","TIME":"1467923353"}]

我試圖做的是解析響應並推送我的數組內的對象,所以最終的結果應該是這樣的:

var data = ([

      ['Price', 'Time'],
      ['1.10661',  1467923348, ],
      ['1.10675',  1467923349, ],
      ['1.10681',  1467923350, ],
      ['1.10690',  1467923351, ],
      ['1.10662',  1467923352, ],
      ['1.10663',  1467923353, ],

    ]);

請記住每次請求中響應更改時收到的對象數量。 在示例中,Im give僅接收兩個對象,但這一直在變化。

先感謝您

我想你可以將你的問題分成兩部分。 首先考慮如何使數據格式的response數據看起來與data相同。 然后將2個數組合並為一個。

這是我的方法。 首先使用map api遍歷resp每個對象,並提取PRICE和TIME的屬性值並將其存儲到新數組中。 這應該給你一個數組數組,其中0位為價格,位置1為時間。

[['1.10662','1467923352'],['1.10663','1467923353']]

然后使用concat api將2 concat組合並為一個。

例:

var data = ([

  ['Price', 'Time'],
  ['1.10661',  1467923348, ],
  ['1.10675',  1467923349, ],
  ['1.10681',  1467923350, ],
  ['1.10690',  1467923351, ],

]);

var resp = [{"PRICE":"1.10662","TIME":"1467923352"},{"PRICE":"1.10663","TIME":"1467923353"}];

data = data.concat(
    resp.map(entity => { return [ entity.PRICE, entity.TIME ]; })
);

輸出:

 [ [ 'Price', 'Time' ], [ '1.10661', 1467923348 ], [ '1.10675', 1467923349 ], [ '1.10681', 1467923350 ], [ '1.10690', 1467923351 ], [ '1.10662', '1467923352' ], [ '1.10663', '1467923353' ] ] 

你可能想在這里閱讀更多關於mapconcat api的內容;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

非常感謝你的答案! 我找到了解決方案,讓我與你分享。
(這個例子有點不同,但想法完全一樣)

<html>
<body>

        <script>
        var myArray = [{"ASK":"1.10662","TIME":"1467923348"},{"ASK":"1.10663","TIME":"1467923346"},{"ASK":"1.10661","TIME":"1467923340"},{"ASK":"1.10663","TIME":"1467923346"},
        {"ASK":"1.10661","TIME":"1467923340"}];

               var data = ([

                  ['PRICE', 'TIME'],

                ]);



        var actualrows = data.length
        var finalrows = data.length + myArray.length;





        for( var i=actualrows; i<finalrows; i++ ) {
          data.push( [] );
        }

        while(actualrows < finalrows){
            var column = 0;
            while(column <2){
                data[actualrows][0] = myArray[actualrows-1]['ASK'];
                data[actualrows][1] = myArray[actualrows-1]['TIME'];;
            column++;
            }

                actualrows++ ;      
        }



        </script>



</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM