2011-04-06 81 views
1

我有一個要求,其中i需要通過JSON格式數據循環,並從該通過JSON格式數據循環與構建數組

我有數據的這種格式作爲名稱值對構建的陣列

var jsonData = [{date:'August 19, 2004',volume:22088000}, 
       {date:'August 20, 2004',volume:22088333} , 
       {date:'August 21, 2004',volume:22088555}] 

我想有上述一個JavaScript陣列中的所有這卷標數據,使得它是從0開始,上升至n的日期,應該建立一個數組,如圖

var volumeData = [[0,22088000],[1,22088333],[2,22088555]]; 

不限想法,如何實現這一點。

任何事情都可以用純JavaScript的jQuery來完成。

+1

你已經寫在標題:您必須在數據上循環**。哪裏有問題?你有什麼嘗試?爲什麼你需要一個數組數組?內部數組的第一個元素已經隱式可用作數組的索引。 – 2011-04-06 09:17:27

回答

1

它不是JSON,它是一個JavaScript對象。但是,你可以這樣做:

var volumeData = []; 
for(var i = 0; i<jsonData.length; i++) { 
    result.push([i, jsonData[i].volume]); 
} 
return volumeData; 
+0

有些人稱之爲「JavaScript中的JSON」或「JSON對象」只是JavaScript中的普通對象(用對象字面量來定義)。僅僅因爲它們看起來相似並不意味着它們是相同的。如果'jsonData'是「JavaScript中的JSON」,那麼它將是一個字符串,需要先解析。 – 2011-04-06 09:22:30

+0

那麼JSON是JavaScript對象的一個​​子集,這就是我作出區分的原因。我將「JSON」視爲子集,這是一種與語言無關的數據交換格式。通過「JavaScript中的JSON」我的意思是JSON子集的超集,它隱式包含子集。 JSON將始終是一個有效的JavaScript對象,因爲它基於JavaScript對象表示法,您不必從字符串中解析它。 – EMMERICH 2011-04-06 09:35:26

+0

非常感謝fd,Sydenam,EMMERICH。這個網站和你所有的人都非常好。 – Kiran 2011-04-06 09:36:23

1
jQuery.map(jsonData, function(elem, idx) { return [idx, elem.volume]; }) 
0
var volumeData = []; 
for (var i in jsonData) { 
    volumeData.push(jsonData[i].volume); 
} 

我喜歡做的for循環像這樣的對象(我認爲它看起來更乾淨,讓我想起了C#)

+0

不正確,這會產生'[22088000,22088333,22088555]' – EMMERICH 2011-04-06 09:36:18

+0

'jsonData'不是一個對象,它是一個數組。你不應該用'for ... in'來循環數組。 – 2011-04-06 09:44:38