2014-04-22 116 views
-2

我有對象的CoffeeScript:對象的數組到對象

arrayObj = [ 
{ "a" : [1,2,3,4]} , { "b" : "Hello World"} ] 

數組我想也將此轉換,

obj = { "a" : [1,2,3,4] , "b" : "Hello World" } 
+2

你到底在哪裏卡住了?你不知道如何迭代數組嗎?或者如何添加屬性到一個對象?這兩個都是在JS教程中解釋或者之前已經被問過。 –

+3

@FelixKling我相信OP被困在「必須編碼」階段。他正在尋找的是有人編寫該代碼,以便他可以解決他的「不得不編碼」問題。 OP的問題的一個可能的解決方案是完整的工作代碼OP可以複製粘貼到他的生產應用程序中,閱讀所述代碼是可選的。 –

+0

所有我想知道的是,像underscore.js這樣的庫中有一個函數來實現這個功能。道歉,如果你發現問題跛腳。我知道如何迭代一個數組,我猜這裏的每個人都可以看到這個帖子。但有時候有更聰明的方法可以讓人們用這樣的論壇來學習。無論如何,我對你們的道歉...... –

回答

1

可以使用減少的陣列的方法。 實施例

arrayObj.reduce(
    function(prevValue,curValue){ 
    prevValue[Object.keys(curValue)[0]] = curValue[Object.keys(curValue)[0]]; 
    return prevValue; 
    } 
, 
{} 
) 

注意:如果相同的屬性名稱在初始陣列的不同的對象重複此將覆蓋(在結果)的屬性值。也適用於現在的第一個屬性。可以擴展到每個包含對象的所有鍵。