2012-01-06 94 views
1

我有此數組:轉換數組一組對象的

var myArray = [{'name': 'name1', 'desc': 'desc1'}, {'name':'name2', 'desc':  
       'desc2'},.....]; 

,我希望把它變成對象是這樣的:

var myobject = { 
    obj1: { 
     name: 'name1', 
     desc: 'desc1', 
    }, 
    obj2 = { 
     name: 'name2', 
     desc: 'desc2' 
    }, 
    ..... 
} 

我想通過myArray的迭代和返回像myobject這樣的對象。

感謝

+3

爲什麼不使用索引? – 2012-01-06 13:00:06

+0

這裏沒有關於JSON的內容。這些是常規的JavaScript對象/數組。 – pimvdb 2012-01-06 13:00:42

+0

你展示瞭解決方案,所以有一種方法;)更好地解釋你的問題,它背後的動機是什麼? – 2012-01-06 13:01:06

回答

3

試試這個:

var myArray = [{'name': 'name1', 'desc': 'desc1'}, {'name':'name2', 'desc':  
      'desc2'}]; 

var myObject = {}; 

for(var i=0;i<myArray.length;i++){ 
    myObject["obj"+i] = myArray[i]; 
} 
1
var i; 
for (i = 0; i < myArray.length; ++i) { 
    window['json' + (i + 1)] = myArray[i]; 
} 
+4

請注意,'str + num + num'會進行連接,所以它會變成'json01'等。 – pimvdb 2012-01-06 13:01:28

+0

@pimvdb糟糕,現在修復。感謝您指出。 – qiao 2012-01-06 13:02:52

1

使用循環或只使用數組的索引,象這樣:

var myArray = [{'name': 'name1', 'desc': 'desc1'}, {'name':'name2', 'desc': 'desc2'}]; 

var json1 = myArray[0]; 
var json2 = myArray[1]; 


console.log(json1.name);