簡體   English   中英

Javascript按JSON對象中的值遞增數組中的值

[英]Javascript Incrementing value in an array by value in JSON object

我有一個包含一組鍵:值的JSON對象。 我想首先檢查密鑰是否與數組值匹配,然后確定是否將值數量添加到該數組中的相同緩沖區數組。

這是我希望展示我的意思的代碼:

ws.onmessage = function(evt){
 cities = JSON.parse(evt.data);
            for(var i=0; i<buffer.length; i++) {                
                if(buffer[i][0] == cities.clusters) {
                    buffer[i][1][0]++;
                }
            console.log(buffer);
            }
       };

這是我的緩沖區數組:

var buffer = [['1',[0]],['2',[0]],['3',[0]],['4',[0]]];

這是從服務器收到的JSON輸出:

{"clusters": {"London": 4, "Atlanta": 5}, "time": "2012-11-22 19:56:25"} 

所以我想要的是這次迭代的緩沖區數組變成:

 var buffer = [['London',[4]],['New York',[0]],['Atlanta',[5]],['LA',[0]]];

在每次迭代時,這些數量都會被添加並更新。

我不知道該怎么做,我不認為for循環能夠做到這一點。

謝謝

我假裝你的緩沖區是這樣的:

var buffer = [['London',[0]],['New York',[0]],['Atlanta',[0]],['LA',[0]]];

然后循環變為:

for (var i = 0, item; item = buffer[i]; ++i) {
    buffer[i][1][0] = cities.clusters[item[0]] || 0;
}

表達式cities.clusters[item[0]] || 0 cities.clusters[item[0]] || 0使用相應城市的值,如果未定義則使用0

演示

假設所有評論和編輯,這應該有所幫助:( 小提琴

var data = {} ; // From Webservice

var buffer = [['London',[4]],['New York',[0]],['Atlanta',[5]],['LA',[0]]];

var clusters = data.clusters;

for (var i in clusters) for(var j in buffer) 

     if(buffer[j][i])  buffer[j][i] = cluster[i];   

暫無
暫無

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

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