ESLint:分配给功能参数的属性

时间:2019-01-17 12:32:33

标签: javascript arrays eslint

给出如下结构:

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

如果不禁用掉毛规则,我该如何解决?

我一直认为数组解构是解决此问题的方法,但是由于结构非常复杂,我不太确定实际情况会是什么样。

1 个答案:

答案 0 :(得分:0)

使用forEach而不是使用map并像提供给函数的参数是不可变的那样进行操作。您正在做details.forEach((detail) => {...});,然后用detail分配给detail.unitPrice = coefficient * detail.price;,这很生气。