[英]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' ] ]
你可能想在這里閱讀更多關於map
和concat
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.