роль _ и уменьшение массива - PullRequest
1 голос
/ 13 апреля 2019

У меня есть пример кода с использованием jsx и redux для установки редуктора следующим образом:

       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 Ответ

2 голосов
/ 13 апреля 2019

Все, что он делает - это присваивает определенный элемент в 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 с помощью _.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...