【问题标题】:How do i save multiple objects into an array如何将多个对象保存到数组中
【发布时间】:2020-11-27 08:58:05
【问题描述】:

点击保存按钮后我有这个对象。

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

但是每当我单击保存时,它都会给我一个新对象,而不是将其存储在数组中。 问题是如何将每个对象存储在数组中以获取

[
{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
 }
}

【问题讨论】:

  • this.holidaysArray = []; 尝试从您的代码中删除它

标签: javascript arrays angularjs angular object


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • @M Fuat NUROĞLU,我删除了它,但它存储了从保存按钮传递的当前对象。它没有从保存按钮存储上一个对象。我如何存储以前和当前的对象
    【解决方案3】:

    this.holidaysArray 设置为数组仅当它还不是Array

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

    另外,我强烈建议使用像 Jest 这样的测试框架来测试您的代码。

    祝你好运……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      相关资源
      最近更新 更多