将同一对象保存到数组中

时间:2018-06-07 16:47:27

标签: javascript arrays javascript-objects

我有一个向分区添加分类帐的功能。每次满足条件时,记录都会保存到数组中。 else块保存正确但if块仅保存第二部分。如何将if块中的两个分类帐保存到数组中?

 //function that pushes the ledger
 .......
 for (let i = 0; i < myledger.length; i++) {
     if (myledger[i].type === 'test' || myledger[i].type === 'Security' 
        || myledger[i].type === 'Books'){

            myledger.push(i)
    }



 if(status === active){
      record {
         type: "Books",
         Fee: 3000
      },
      record {
         type: "Security",
         Fee: 1000
      },
   }
   else {
      record {
         type: "test",
         Fee: 10000
      }
   }

2 个答案:

答案 0 :(得分:0)

问题仅在于您的多对象分配。您试图一次添加两个对象,但由于语句错误,第二个与第一个重叠。

尝试使用简单的数组方法。

records = [
    {
        type: "Books",
        Fee: 3000
    },
    {
        type: "Security",
        Fee: 1000
    }
];

答案 1 :(得分:-1)

我认为问题出在这里:

  record {
     type: "Books",
     Fee: 3000
  },
  record {
     type: "Security",
     Fee: 1000
  },

我认为你试图将这些记录中的每一个添加到'records'数组中,但是却出现了语法错误。你现在正在做什么看起来更像是定义一个对象属性'record' - 因为你定义了两次,第二个记录属性覆盖了第一个。

相反,你可能想要做这样的事情:

records.push(
    {
        type: "Books",
        Fee: 3000
    },
    {
        type: "Security",
        Fee: 1000
    }
);

当然,确切的实施取决于您要做的事情。希望这会有所帮助。