有没有办法在es6中将对象解构为新对象?

时间:2018-05-17 00:03:06

标签: javascript reactjs ecmascript-6

例如,我有这个对象:

apple

我希望将其解构为只包含dogconst newPayload = { apple:1, dog: 2 } 的新对象:

const {{apple, dog} : newPayload} = payload

类似的东西:

array([[ 0., -1.,  0.,  0.],
       [ 0.,  1.,  1.,  1.],
       [ 0.,  0., -1.,  0.],
       [ 0.,  0.,  0., -1.]])

显然以上是错误的,但想知道是否有办法做这样的事情。

谢谢!

2 个答案:

答案 0 :(得分:6)

您可以使用delete

const newPayload = { ...payload };

delete newPayload.cat

或者:

const { cat, ...newPayload } = payload;

Lodash也有omit()

const newPayload = _.omit(payload, ['cat']);

答案 1 :(得分:2)

可能分两步:

const payload = {
    apple: 1,
    dog: 2,
    cat: 3
}

const { apple, dog } = payload

const newPayload = {
    apple,
    dog,
}

或者你可以使用lodash _.pick

const newPayload = _.pick(payload, ['apple', 'dog'])