Javascript 如何连接到';索引';数组中的对象

Javascript 如何连接到';索引';数组中的对象,javascript,reactjs,redux,reducers,Javascript,Reactjs,Redux,Reducers,我有一个可以改变[{}]或[{},{}]结构的减缩器 [0:{}]或[0:{},1:{}] 在这次更改之后,我无法转换到这个原始数组。这个案子有什么解决办法吗? 我必须补充一点,要改变减缩器真的很难,因为它并没有改变数组的结构(这是我的观点) 我添加了reducer代码: import * as actionTypes from '../actions'; import {schema, normalize, arrayOf} from 'normalizr'; import _ from 'l

我有一个可以改变[{}]或[{},{}]结构的减缩器 [0:{}]或[0:{},1:{}]

在这次更改之后,我无法转换到这个原始数组。这个案子有什么解决办法吗? 我必须补充一点,要改变减缩器真的很难,因为它并没有改变数组的结构(这是我的观点)

我添加了reducer代码:

import * as actionTypes from '../actions';
import {schema, normalize, arrayOf} from 'normalizr';
import _ from 'lodash';


const iniState = {
  recipes : []
}

function createRecipe(state = iniState, action) {
  switch (action.type) {
    case actionTypes.ADD_RECIPE:
      let newRecipe = {
        id: Math.floor(Math.random()*10000),
        re: action.payload.recipeInReducer,
        c: action.payload.compsInReducer
      }
      return {
        ...state,
        recipes: state.recipes.concat(newRecipe)
      }
      case actionTypes.EDIT_BOOLEAN:
      return {...state,
        recipes: {..._.map(state.recipes, recipe=>{
          if(recipe.id === action.payload.idFromRecipe){
            return Object.assign({}, recipe, {
              c: {..._.map(recipe.c, comp=>{
                if(comp.id === action.payload.idFromComp){
                  return {...comp,
                  toRecipe: !comp.toRecipe};
                }else{return comp}
              })
            }
            })
          } else{
            return Object.assign({}, recipe, {
              c: {..._.map(recipe.c, comp=>comp)}})
          }
        })
      }
}

 }
  return state;
}
export default createRecipe;

您可以使用转换对象,它将键作为数组的索引

var object={0:{foo:0},1:{bar:42},
数组=对象。分配([],对象);

console.log(数组)
[0:{}]
在javascript中不是一个有效的结构。我添加了一张图片,所以它是无效的,但它是由javascripts函数生成的,如何?Post你的reducer code看起来像是你将
{0:{},1:{}
拼错为
[0:{},1:{}]
,否则它不清楚,或者根本不正常我写得很好:对象数组:[0:{},2:}]