从对象中提取并分配给另一个对象时的 ES6 大括号用法
ES6 curly braces usage when extracting from an object and assigning to another object
我想用大括号替换这段代码:
let rUsers = children.map((user) => {
let rUser= {};
rUser.firstName = user.firstName;
rUser.lastName = user.lastName;
rUser.relation = user.patron.relation;
return rUser;
});
这是我的:
let rUsers = children.map((user) => {
let rUser = {};
({
firstName: rUser.firstName,
lastName: rUser.lastName,
patron.relation: rUser.relation, // I get an error here
} = user);
return rUser;
}
除了patron.relation,其余提取工作。
问题:
- 我应该如何提取用户的价值。patron.relation?
- 有没有更简洁的写法?
谢谢!
我发现您的代码有一些问题。
patron.relation
-> patron
未定义,不能用作键。
- 在第二个示例中,使用了
rUser
- 我认为您只需要 user
.
我对您尝试做的事情的理解本质上是创建一个克隆?如果是这样,你应该可以做这样的事情。
let rUsers = children.map(user => {
firstName: user.firstName,
lastName: user.lastName,
relation: user.relation
});
或者,使用 Object.assign()
可能更简单
let rUsers = children.map(user => Object.assign({}, user));
您可以像这样使用对象解构:
const {firstName, lastName, patron: {relation}} = user
并且relation
已经设置为user.patron.relation
的值。
您可以 return 您想要的对象,如下所示:
return {firstName, lastName, relation}
How should I extract value of user.patron.relation
?
您将使用 { … patron: {relation: rUser.relation}, … }
作为解构目标。
Is there a more succint way of writing the above?
如果 属性 名称与 不匹配,但在您的特定情况下,您可以通过将参数解构为多个变量来简化:
const rUsers = children.map(({firstName, lastName, patron: {relation}}) =>
({firstName, lastName, relation})
);
我想用大括号替换这段代码:
let rUsers = children.map((user) => {
let rUser= {};
rUser.firstName = user.firstName;
rUser.lastName = user.lastName;
rUser.relation = user.patron.relation;
return rUser;
});
这是我的:
let rUsers = children.map((user) => {
let rUser = {};
({
firstName: rUser.firstName,
lastName: rUser.lastName,
patron.relation: rUser.relation, // I get an error here
} = user);
return rUser;
}
除了patron.relation,其余提取工作。
问题:
- 我应该如何提取用户的价值。patron.relation?
- 有没有更简洁的写法?
谢谢!
我发现您的代码有一些问题。
patron.relation
->patron
未定义,不能用作键。- 在第二个示例中,使用了
rUser
- 我认为您只需要user
.
我对您尝试做的事情的理解本质上是创建一个克隆?如果是这样,你应该可以做这样的事情。
let rUsers = children.map(user => {
firstName: user.firstName,
lastName: user.lastName,
relation: user.relation
});
或者,使用 Object.assign()
let rUsers = children.map(user => Object.assign({}, user));
您可以像这样使用对象解构:
const {firstName, lastName, patron: {relation}} = user
并且relation
已经设置为user.patron.relation
的值。
您可以 return 您想要的对象,如下所示:
return {firstName, lastName, relation}
How should I extract value of
user.patron.relation
?
您将使用 { … patron: {relation: rUser.relation}, … }
作为解构目标。
Is there a more succint way of writing the above?
如果 属性 名称与
const rUsers = children.map(({firstName, lastName, patron: {relation}}) =>
({firstName, lastName, relation})
);