在 redux 的数组中添加键和值

add key and value in array in redux

我正在尝试更新 reducer 中的数组

let initialState = {
count: 0,
todos: [],
id:0,
 }

const authReducer = (prevState = initialState, action) => {
switch (action.type) {
    case types.ADD_TO_DO:
        console.log(action.todo)
        
        return {
           ...prevState,
            todos: prevState.todos.concat(action.todo)
        }
    default:
        return prevState;
}
}

我得到的数组形式为

todos:['qwerty', 'abcdef']

但我想要

的形式
todos:[{id:'1', todo:'qwerty'},{id:'2',todo:'abcdef'}]

我怎样才能做到这一点?

谢谢!!!

您可以使用 reduce 完成此任务

const todos = ['qwerty', 'abcdef']

const data = todos.reduce((acc, rec, index) => {
  return [...acc, {
    id: index + 1,
    todo: rec
  }]
}, [])

console.log(data)

为了将todos:['qwerty', 'abcdef']转换成你想要的格式,你可以映射它:

var todos=['qwerty', 'abcdef'];
var result = todos.map((todo, i)=>({id:i+1, todo}));

console.log(result);