Javascript 如何连接到';索引';数组中的对象
我有一个可以改变[{}]或[{},{}]结构的减缩器 [0:{}]或[0:{},1:{}] 在这次更改之后,我无法转换到这个原始数组。这个案子有什么解决办法吗? 我必须补充一点,要改变减缩器真的很难,因为它并没有改变数组的结构(这是我的观点) 我添加了reducer代码: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
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:}]