提问者:小点点

在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'}]

我怎样才能做到这一点呢?

谢谢!!!


共2个答案

匿名用户

为了将todos:['qwerty','abcdef']转换为您期望的格式,您可以将其映射为:

null

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

console.log(result);

匿名用户

您可以对此任务使用reduce

null

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

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

console.log(data)