我正在try 理解如何在不改变原始变量的情况下向对象添加元素.
举个例子,这就是我拥有的:
let orders = [];
const order = { name: "John", phone: "+12345" };
if (orders.length === 0) {
orders = [{ ...order, invoice: "INV-1" }];
} else {
let temp;
temp = parseInt(orders[orders.length - 1].invoice.replace(/INV-/, ""));
orders = [...orders, order];
orders[orders.length - 1].invoice = `INV-${temp+1}`;
};
console.log(order)
console.log(orders);
我注意到,对于第一个条件,它是有效的,因为当Orders是空数组时,我没有看到变量"Order"发生变化.但是,例如,如果现在订单等于以下值:
let orders = [{name: "Maria", phone:"+19876", invoice:"INV-1"}];
我可以看到它通过了"Else"语句,其中的操作将新的键添加到Orders中,然而,变量Order也发生了Mutations .
我的问题是,例如,我如何在这个特定的例子中添加INV-2而不Mutations 顺序?
谢谢.