繁体   English   中英

如何将多个对象保存到数组中

[英]How do i save multiple objects into an array

单击保存按钮后,我有这个 object。

{description: "ghhg", dateSelected: "2020-02-27", startDate: "2020-02-27", company_id: "2", hr_id: 
72, …}

但是每当我点击保存时,它都会给我一个新的 object 而不是将它存储在数组中。 问题是我如何将每个 object 存储在一个数组中以获得

[
{description: "ghhg", dateSelected: "2020-02-27", startDate: "2020-02-27", company_id: "1" …},
{description: "grrrhhg", dateSelected: "2020-03-27", startDate: "2020-03-27", company_id: "2" …},
{description: "ghrtrhg", dateSelected: "2020-04-27", startDate: "2020-04-27", company_id: "2",  …},
.
.
.
]

这是我的代码

saveHolidays(hols : []){
 this.holidays.hr_id = this.hrID.id;
 this.getHolidayDate = this.holidays.dateSelected.split(" to ");
 this.holidays.startDate = this.getHolidayDate[0];
 this.holidays.endDate = this.getHolidayDate[1];
 this.getHols = this.holidaysData;
 this.holiday_date = [];
 this.holidaysArray = [];
 var tempHolidays = [];
 this.getHols.forEach((element,key) => {
   if(element.startDate){
     this.holiday_date.push({startDate : element.startDate, endDate : element.endDate, company_id : 
  element.company_id})
   }
 });
 var getElement = [];
 let getStartDate = this.holiday_date.map(element => {
 getElement.push(element.startDate, element.company_id);
 return getElement;
 });

 for(var i = 0; i < getStartDate.length; i++){
  var isStartDatePresent = getStartDate[i].includes(this.holidays.startDate);
  var isCompanyIdPresent = getStartDate[i].includes(+this.holidays.company_id);
 }
 if(isStartDatePresent == true && isCompanyIdPresent == true ){
   this.snotifyService.error('Holiday Already Exist');    
 }else{
   hols = this.holidays;
   for(var i = 0; i < hols.length; i++){
     this.holidaysArray.push(hols[i]);
   }

  return this.holidaysArray
 }
}

我有点生疏了,但如果我没记错的话,JS arrays 没有固定宽度,因此您可以将每个保存的假期推送到外部实例化数组或返回一个并将所需的外部数组设置为它。

每次通过编写this.holidaysArray单击保存按钮时,您都会重新初始化数组。 删除它可能会解决您的问题。

this.holidaysArray还不是Array时才将其设置为数组。

/* REPLACE */
    this.holidaysArray = []
/* WITH */
  if (!Array.isArray(this.holidaysArray)) {
    this.holidaysArray = []
  }

另外,我强烈推荐使用像Jest这样的测试框架来测试你的代码。

祝你好运...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM