2015-08-20 84 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)