2017-03-10 77 views
-1

我是nodejs中的新手。我想要下面的结果,但它显示最后的价值。如何在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 
} 
+0

什么是push()? – Darkrum

回答

1

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

更改此:

childskill = JobCategoryInstance.child_categories[i].child_categoryname; 

这样:

childskill.push(JobCategoryInstance.child_categories[i].child_categoryname); 
如果你想新的元素,可以在每次添加到阵列

+0

感谢亲爱的工作:)非常感谢 –