如何解决对功能参数属性的分配 [英] How to solve this assignment to property of function parameter

查看:124
本文介绍了如何解决对功能参数属性的分配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都可以帮助我使用此功能,在下面的功能中我遇到错误

Can anyone help me with this function too,in below function I am getting an error of

Assignment to property of function parameter 'carry'.

如何使用以下功能解决以上错误?如何在不更改功能逻辑的情况下重新编写功能?

How can I solve this above error with below function? How can I re-write the function without changing the function logic? And solve the eslint error too.

const filter = selectedFilter[0].conditions.reduce(
  (carry, current) => {
    if (current.field === 'access_group_uuid') {
      // eslint-disable-next-line in next line getting error at carry
      carry[current.field] = (carry[current.field] || []).concat(
        current.value,
      );
    } else {
      // eslint-disable-next-line in next line getting error at carry
      carry[current.field] = carry[current.field] ?
        [carry[current.field], current.value] :
        current.value;
    }
    return carry;
  }, {},
);

使用示例-上面的功能

const data = { 
    executed:[
    {_id: "5f23d394cd 480e300", field: "name", value: "Jolly", operator: "equal"},
    {_id: "5f30d39f4cd8d0e301", field: "status", value: "EXPIRED", operator: "equal"},
    {_id: "5f230d39001480e302", field: "grp", value: "874-3-11-4-56", operator: "equal"},
    {_id: "59f4cd8d001480e303", field: "grp", value: "873-5-12-4-77", operator: "equal"}
    ],
    created_at: "2020-07-30T18:11:05.992Z",
    name: "Kind Find",
    _id: "1f230d39f4cd8d441480e2dd"
}

console.log(
    data.executed.reduce((carry, current) => {
        if (current.field === 'grp') {
            // eslint-disable-next-line no-param-reassig
            carry[current.field] = (carry[current.field] || []).concat(current.value);
        } else {
            // eslint-disable-next-line no-param-reassig
            carry[current.field] = carry[current.field] ? [carry[current.field], current.value] : current.value;
        }
        return carry;
    }, {})
);
        


推荐答案

您可以将传递变量分配给某些

you can assign passing variables to some other variables.

    const current = currentValue;
    const carry = carryValue;

下面的代码段。

const data = { 
    executed:[
    {_id: "5f23d394cd 480e300", field: "name", value: "Jolly", operator: "equal"},
    {_id: "5f30d39f4cd8d0e301", field: "status", value: "EXPIRED", operator: "equal"},
    {_id: "5f230d39001480e302", field: "grp", value: "874-3-11-4-56", operator: "equal"},
    {_id: "59f4cd8d001480e303", field: "grp", value: "873-5-12-4-77", operator: "equal"}
    ],
    created_at: "2020-07-30T18:11:05.992Z",
    name: "Kind Find",
    _id: "1f230d39f4cd8d441480e2dd"
}

console.log(
    data.executed.reduce((carryValue, currentValue) => {
        const current = currentValue;
        const carry = carryValue;

        if (current.field === 'grp') {
            carry[current.field] = (carry[current.field] || []).concat(current.value);
        } else {
            carry[current.field] = carry[current.field] ? [carry[current.field], current.value] : current.value;
        }
        return carry;
    }, {})
);

这篇关于如何解决对功能参数属性的分配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆