如何将对象推送到关键数组javascript?

时间:2016-10-12 02:40:16

标签: javascript arrays object key

我有一个这样的对象:

var newService = new Service({
     name: service.name,
     description: service.description,
     supplier: service.supplier,
     price: service.price,
     info_requires: []
});

这是模态Service

var serviceSchema = new Schema({
    name: String,
    description: String,
    supplier: String,
    price: Number,
    info_requires: [{
        name: String,
        type: Number, // 1-text 2-combobox 3-textarea
        limit: []
    }],
});

这是我的数据:

var services = [{ name: "Test", description: "Des", supplier: "Sup", price: 123, icon: "icon", type: 1, open: 1, info_requires: [ { name: "Age", type: 1, limit: [] }, { name: "Bla bla", type: 1, limit: [] } ] }]

我将数据推送到info_requires[],如下所示:

newService.info_requires.push(service.info_requires[i]) 

newService.info_requires[i].name = (service.info_requires[i].name) 但它不能用于错误:Cannot set property 'name' of undefined?我做错了吗?

2 个答案:

答案 0 :(得分:0)

如果"服务"是您创建的自定义对象,这可能会起到作用

var service ={
 name: "",
 description: "",
 supplier: "",
 price: "",
 info_requires: []
};

service.info_requires.push(some_object);
new Service(service);

答案 1 :(得分:0)

检查密钥是否存在,如果没有为密钥创建数组/对象,如

this.setState(...)

类似
if (newService.info_requires === undefined) {
    newService.info_requires = [];
}
newService.info_requires.push(service.info_requires[i]);