2015-08-20 110 views
0

什麼是正確的Underscore.js方法來創建一個名爲由每個項目數組組成的項目的新對象。在哪裏我可以在一次調用中創建每個item.name的POST?使用Underscore.js創建對象

var items = []; 

item = [{ 
    name: "item1", 
    desc: "this is a description of item 1", 
    qty: 1 
},{ 
    name: "item2", 
    desc: "this is a description of item 2", 
    qty: 5 
},{ 
    name: "item3", 
    desc: "this is a description of item 3", 
    qty: 3 
}]; 

items.push(item); 
+0

項目數組無效。你需要使用'{...}'對象的語法來代替(例如'item = {name:「item1」,desc:「this is ...}」,如果你要這樣創建對象,你還需要在每個對象字面值後面調用'items.push(item);否則你將永遠不會在你的數組中有任何東西,因爲'item'在引用的時候沒有被定義過 – War10ck

+0

謝謝,更新但不是我的問題 – Pianoc

+1

對不起,但這個問題沒有意義,它們不是項目數組,它們是對象。通常,您將創建一個包含'item'對象的數組'items'。如果你想讓'items'成爲一個對象,並且每個'item'都是一個對象,那麼你需要確定這三個子對象的名字。 – War10ck

回答

1

如果我理解正確的問題,你想一個項目數組轉換爲對象的每個關鍵是對象

例如名稱

{ 
    item1: { 
     name: "item1", 
     desc: "this is a description of item 1", 
     qty: 1 
    }, 
    item2: { ... }, 
    item3: { ... }, 
} 

如果是這樣的話,那麼你可以使用object函數有兩個參數;第一個是屬性名稱列表,第二個是值列表:

var items = [{ 
      name: "item1", 
      desc: "this is a description of item 1", 
      qty: 1 
     },{ 
      name: "item2", 
      desc: "this is a description of item 2", 
      qty: 5 
     },{ 
      name: "item3", 
      desc: "this is a description of item 3", 
      qty: 3 
     } 
    ]; 

    var itemsAsAnObject = _.object(_.pluck(items,'name'), items)