2015-12-15 83 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

相关问题