2015-12-15 81 views
0

我有一個數據結構如下圖所示:如何嵌套的對象轉換爲對象的數組中的JavaScript

var data = Object { 0={ 
         user : 1 
         job : call center 
        }, 
        1={ 
         user : 2 
         job : programmer 
        } 
        } 

現在我想將它們轉換爲對象的數組,看起來像這樣:

 [Object {user : 1, job : call center}, {user : 2, job : programmer} ] 

可能嗎?我如何轉換它們。任何幫助,謝謝。

+0

'這可能嗎?'是 – vol7ron

+0

我應該需要做什麼? – qazzu

+1

除非您提到您嘗試解決您的問題,否則此問題可能會被關閉。 –

回答

1
  1. 你的對象創建具有語法較差
  2. 下面將向您展示如何用一個簡單的做到這一點for循環,但做了很多假設(例如,您的對象鍵被正確標記)。我通常會使用map,但覺得這可能不是那麼容易/簡單明白;所以循環應該足夠簡單。

var data = { 0:{ 
        user : 1, 
        job : 'call center' 
       }, 
       1:{ 
        user : 2, 
        job : 'programmer' 
       } 
      }; 


var arr = [], 
    keys = Object.keys(data); 

for(var i=0,n=keys.length;i<n;i++){ 
    var key = keys[i]; 
    arr[key] = data[key]; 
} 
+0

Crockford建議使用'forEach'而不是傳統的'for'循環。 –

+2

@RahulDesai:然後忽略克羅克福德。 – Bergi

+0

@Bergi給出了很好的建議。 – 2015-12-15 02:50:02

3

嘗試使用map

var array = $.map(data , function(value, index) { 
    return [value]; 
}); 

你也可以不用jQuery的:

var array = Object.keys(data).map(function(k) { return obj[k] }); 
+0

我不認爲這個工作沒有'長度' – Bergi

+3

僅供參考 - 這個問題沒有jQuery標籤。 –

+0

或者等待,您正在濫用jQuery的concat-map功能(這是錯誤的'地圖'),可以枚舉對象...聰明。 – Bergi

相關問題