您没有修改原始数组。您正在修改数组中的对象。如果要避免使数组中的对象发生变异,则可以使用
Object.assign原始属性加上所需的任何更改来创建一个新对象:
const freeProduct = function(products) { return products.map(x => { return Object.assign({}, x, { productType: "free" }); });};2018编辑:
在大多数浏览器中,您现在可以使用对象传播语法来代替
Object.assign完成此操作:
const freeProduct = function(products) { return products.map(x => { return { ...x, productType: "free" }; });};


