2014-09-26 77 views
-1

我有這樣的陣列與對象轉換陣列到陣列的Jquery

var Obj = 
[{ 
      "id": 1, 
      "name": "John", 
      "score": 4300, 
      "active": 1, 
     }]; 

我想將其轉換爲這個

var dataSet = [ 
    ['1','John','4300','1'] 
]; 

我已經嘗試了很多簡單的jQuery的,但沒有運氣,soory爲這如果你認爲它很簡單,但我是新的在JS

+0

這不是JSON,這是一個包含對象的數組。即使您將數據作爲JSON(某種程度上),它與問題無關。 – 2014-09-26 22:10:33

+0

我編輯了我的問題 – 2014-09-26 22:11:58

+1

您是否在意內部數組中元素的順序? – dta 2014-09-26 22:12:26

回答

1

如果你正在尋找的價值無論是按鍵,您可以使用for in語法:

var dataSet = Obj.map(function(x) { 
    var result = []; 
    for (key in x) { 
     result.push((x[key]||"").toString()); 
    } 
    return result; 
}); 

它看起來像array.map不工作IE8及以下,所以jQuery.map是,如果你需要舊的瀏覽器兼容性類似的替代品。

+0

不起作用 – 2014-09-26 22:30:00

+0

您是否正在使用IE8或更低版本? – 2014-09-26 22:30:35

+0

沒有谷歌瀏覽器 – 2014-09-26 22:31:09

1

沒有涉及的jQuery。 jQuery用於處理文檔對象。

下面是其安排在給定的例子訂單中的項目的解決方案,所有的值轉換爲字符串:

function convert(objectList) { 
    return objectList.map(function(x) { 
    return [""+x.id, ""+x.name, ""+x.score, ""+x.active]; 
    }); 
} 

var Obj = [ 
    { 
    "id": 1, 
    "name": "John", 
    "score": 4300, 
    "active": 1, 
    } 
]; 
console.log(convert(Obj)); 
+0

現在工作,txanks,但正如你可能看到我有ID名稱分數活動硬編碼,如果我有不同的結構? – 2014-09-26 22:25:45

+0

您可以更改轉換功能。你期望在任意屬性的運行時獲得對象嗎?你會如何訂購任意屬性? – AgentME 2014-09-26 22:40:15

0

下面的代碼應該給出你想要的結果,假設你有一個對象數組。

var JsonObj = 
[{ 
      "id": 1, 
      "name": "John", 
      "score": 4300, 
      "active": 1, 
     }]; 
var dataSet = []; 

for(var i=0; i<JsonObj.length; i++){ 

    var innerDataSet = [] 
    for(prop in JsonObj[i]){ 
    innerDataSet.push(""+JsonObj[i][prop]); 
    } 

    dataSet.push(innerDataSet); 
} 

如果你正試圖轉換到JSON或背面,看看JSON.stringify(text)JSON.parse(text)

+0

不起作用 – 2014-09-26 22:27:00

+0

我意識到你在你的示例數組中有字符串。看@ AgentME轉換爲字符串,這是否適合你? – user1600704 2014-09-26 22:34:57