如何在nodejs数组中添加值?

时间:2017-03-10 16:36:32

标签: node.js mongoose-schema

我是nodejs的新手。我想要下面的结果,但它显示了最后一个值。

"child_skills" : [ 
                "Nodejs", 
                "Android", 
                "Javascript"
            ],

我的nodejs方法

 export function create(req, res) {
      return JobCategories.create(req.body)
        .then((JobCategoryInstance) => {      
          var childskill =  [];     
           for (var i = 0; i < JobCategoryInstance.child_categories.length; i++) {            
           childskill = JobCategoryInstance.child_categories[i].child_categoryname;
          }
           EngineerSkills.create({ skill_name: JobCategoryInstance.category_name, child_skills: childskill });
               return JobCategoryInstance;

        })
        .then(respondWithResult(res, 201))
        .catch(handleError(res));
    }  

我的结果如下。为什么这只是最后一个值?

    {
    "_id" : ObjectId("58c2d5019caa49199854872e"),
    "skill_name" : "soft",
    "date_updated" : ISODate("2017-03-10T16:32:01.437Z"),
    "child_skills" : [ 
        "Javascript"
    ],
    "__v" : 0
}

1 个答案:

答案 0 :(得分:1)

不是向数组中添加元素,而是每次都使用其中一个元素替换数组。

改变这个:

childskill = JobCategoryInstance.child_categories[i].child_categoryname;

到此:

childskill.push(JobCategoryInstance.child_categories[i].child_categoryname);

如果您希望每次都将新元素添加到数组中。