我创建了一个有角度的酒店预订应用程序,该应用程序将预订存储在一个数组中,但是每次添加新预订时,最后一个预订都会被更新并替换为新预订。
我尝试遵循YouTube上的CRUD Artist应用程序教程,它具有相似的功能
// this method calculates the array variables before they are pushed
getCost(reserve: reservations) {
this.person.map((b) => {
if (b.id) {
if (b.id === reserve.id) {
reserve.id++;
}
b.name = reserve.name;
b.lastname = reserve.lastname;
b.email = reserve.email;
b.phone = reserve.phone;
b.category = reserve.category;
b.checkin = reserve.checkin;
b.days = reserve.days;
b.people = reserve.people;
if ((!b.days) || (!b.people)) {
alert('Something went wrong in assigning the day or people');
} else if (b.category === 'Single') {
reserve.cost = 399.00 * b.days * b.people;
} else if (b.category === 'Double') {
reserve.cost = 599.00 * b.days * b.people;
} else if (b.category === 'Twin') {
reserve.cost = 799.00 * b.days * b.people;
} else if (b.category === 'Deluxe') {
reserve.cost = 1999.00 * b.days * b.people;
}
b.cardnumber = reserve.cardnumber;
b.cardholder = reserve.cardholder;
b.expiary = reserve.expiary;
if ((b.cardnumber === undefined) || (!b.cardnumber)) {
reserve.payment = 'Unverified';
} else {
reserve.payment = 'Verified';
}
} else {
alert('Id should not be empty');
}
});
}
// this method calls the method above then pushes the data into the array
addPerson(v: any) {
this.getCost(v);
this.person.push(v);
}
我希望每个新数组都包含新数据,而旧数组与它们的数据保持不变,但是我会得到重复的数据
答案 0 :(得分:0)
我认为您应该将.map()调用替换为.forEach()