一种方法是使用Slice,但是它与嵌套对象兼容,还是仅用于数组。如果是这样,我如何切片嵌套对象?即我的州是
Object = {
a:{ 1: '1', 2: '2', 3: '3' },
b:{ 1: '1', 2: '2', 3: '3' },
c:{ 1: '1', 2: '2', 3: '3' }
}
我想从Object中删除b。
答案 0 :(得分:1)
如果您可以使用lodash,我建议您使用omit
method
然后你就可以做到:
const omit = require('lodash.omit')
const obj = {
a:{ 1: '1', 2: '2', 3: '3' },
b:{ 1: '1', 2: '2', 3: '3' },
c:{ 1: '1', 2: '2', 3: '3' }
}
const objWithoutB = omit(obj, 'b')
或者你可以手工完成:
const keys = Object.keys(obj).filter((key) => key !== 'b')
const objectWithoutB = keys.reduce((acc, key) => {
acc[key] = key
return acc
}, {})
答案 1 :(得分:1)
如果您使用ES6,这是单线工作。而且,我确定您使用的是ES6。
希望它有所帮助。
factories.get(type).create(type);

答案 2 :(得分:0)
我能想到的一种方法是使用对象解构:
let obj = {
a:{ 1: '1', 2: '2', 3: '3' },
b:{ 1: '1', 2: '2', 3: '3' },
c:{ 1: '1', 2: '2', 3: '3' }
}
let {a,c} = obj;
let newState = {a,c};
答案 3 :(得分:-1)
为了从Redux Store中删除状态,我执行了以下操作并且它可以工作:
case DELETE_SAVED_OBJECT :
return Object.keys(state) // loops over the current state object and gets the keys
.filter((Id) => action.Id !== Id) // filters out Id for deletion and return an array
.reduce((prev, current) => { // turn the array back to an object
prev[current] = state[current]
return prev // return the new state
}, {})