_和数组归约的作用

时间:2019-04-13 01:57:21

标签: javascript arrays object ecmascript-6 redux

我有一个使用jsx和redux设置reducer的代码示例,如下所示:

       case Test:
        const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;

        return {
            ...state,
            ...{ 
                alerts:
                {
                    ...filteredAlerts
                }
            }
        };
    default:
        return state;

一切正常,但我根本不理解这一行:

 const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;

有人可以对此提供简单明了的解释吗? 例如_在这里是什么意思?

[action.payload.id]: _

这行是做什么的?

const { [action.payload.id]: _, ...filteredAlerts } = state.alerts;

1 个答案:

答案 0 :(得分:2)

它所做的就是将state.alerts中的某个项目分配给名称为_的局部变量,然后使用...收集其余的项目。本质上,这是将state.alerts action.payload.id中的所有属性复制到新的filteredAlerts变量。这是一种很长的写法:

let filteredAlerts = {};

for (let key in state.alerts) {
    if (key != "action.payload.id") {
        filteredAlerts[key] = state.alerts[key];
    }
}

除了您仍然可以使用action.payload.id访问_