首页 > 解决方案 > 在其他对象上使用解构构造对象属性

问题描述

我可以使用解构动态构建对象吗?就像我token在下面一样this.request.body.token,如何获取值并将其分配给对象属性?试过下面的例子它不会工作:

const params = {
    token
} = this.request.body

console.log(params.token) //undefined

我必须这样做

const reqBody = this.request.body

const params = {
  token: reqBody.token
}

console.log(params.token) //123

标签: javascriptecmascript-6

解决方案


在解构时使用冒号分配给具有与属性名称不同的名称的独立变量:

const obj = { request: { body: { token: 'abc' } } };
// obj is equivalent to the `this` in your code

const { request: { body: reqBody } } = obj;
console.log(reqBody);

如果你对变量名只是 没body问题,那么它就更容易了:

const obj = { request: { body: { token: 'abc' } } };
// obj is equivalent to the `this` in your code

const { request: { body } } = obj;
console.log(body);


推荐阅读