簡體   English   中英

如何將對象推送到鍵數組JavaScript?

[英]How to push object to key array javascript?

我有一個這樣的對象:

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 Cannot set property 'name' of undefined 我做錯了嗎?

如果“服務”是您創建的自定義對象,則可以解決問題

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

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

檢查鍵是否首先存在,如果不存在,請為鍵創建數組/對象,例如

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

類似的

if (newService.info_requires[i] === undefined) {
    newService.info_requires[i] = {};
}
newService.info_requires[i].name = (service.info_requires[i].name);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM