给出如下结构:
products: {
'123': {
details: [
{
price: 45,
unitPrice: 0,
productName: 'apples'
}
]
}
}
还有一个功能
function modifyPriceForApples(coefficient) {
const products = cloneDeep(vehicleProductSelector.getAllProducts(store.getStore().getState()));
let appleProduct;
Object.keys(products).forEach((productId) => {
const {
details
} = vehicleProducts[productId];
details.forEach((detail) => {
const {
price,
productName
} = detail;
if (productName === 'apples') {
detail.unitPrice = coefficient * detail.price;
appleProduct = products[productId];
}
});
});
return appleProduct;
}
我收到掉毛错误:Assignment to property of function parameter
如果不禁用掉毛规则,我该如何解决?
我一直认为数组解构是解决此问题的方法,但是由于结构非常复杂,我不太确定实际情况会是什么样。
答案 0 :(得分:0)
使用forEach
而不是使用map
并像提供给函数的参数是不可变的那样进行操作。您正在做details.forEach((detail) => {...});
,然后用detail
分配给detail.unitPrice = coefficient * detail.price;
,这很生气。