Как перебрать массив объектов и изменить свойство в приставке? - PullRequest
1 голос
/ 18 апреля 2019

У меня есть этот массив в моем состоянии:

state:{     
   items:[{id:0},{id:1},{id:2},{id:3}]
}

Я могу сделать это: Я могу удалить один из этих объектов, например,во-вторых, массив будет выглядеть так:

 items:[{id:0},{id:2},{id:3}]

Что я хочу сделать (мне нужна помощь, чтобы сделать это)

Я хочу повторитьнад массивом и равным идентификаторам равным его собственной позиции индекса в массиве, чтобы он стал таким:

 items:[{id:0},{id:1},{id:2}]

Итак, объекты с Id: 2 и Id: 3 будут установлены в Id: 1 иId: 2 соответственно, в соответствии с его новой индексной позицией.

Как мне этого добиться?

Я использую следующий код в редукторе для удаления нужного объекта:

if(action.type==='deleteItem'){
    return{
        ...state,
        items:[
            ...state.items.slice(0,action.index),
            ...state.items.slice(action.index+1),
        ]

    }
}

Как я могу реализовать его, чтобы также изменить свойства Id в каждом объекте массива в соответствии с его новой позицией индекса?

Спасибо всем за внимание!

1 Ответ

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

Вы можете отобразить полученный массив после удаления одного элемента, например:

return {
    ...state,
    items: [
        ...state.items.slice(0,action.index),
        ...state.items.slice(action.index + 1),
    ].map((item, index) => ({ ...item, id: index }))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...