有没有更简单的方法来分配这个变量与对象解构?

时间:2017-09-05 13:52:15

标签: javascript ecmascript-6 object-literal

const user = new db.User({
        firstName: req.body.firstName,
        lastName: req.body.lastName,
        password: req.body.password,
        email: req.body.email,
        dateCreated: req.body.dateCreated
    })

我知道有一种方法可以通过给出与其源名称相同的属性来为对象赋值,但我不确定它是如何工作的。

3 个答案:

答案 0 :(得分:1)

您可以解构上述所有这些值以简化它:

const { firstName, lastName, password, email, dateCreated } = req.body

然后你需要做的就是:

const user = new db.User({
    firstName,
    lastName,
    password,
    email,
    dateCreated,
})

答案 1 :(得分:0)

这似乎是Automapper的一个很好的用例。它会像名字一样映射,可以折叠变量 http://automapper.org/

答案 2 :(得分:0)

您也可以将其作为功能性单行,但即使在这种情况下,您仍然需要重复属性名称。

const user = new db.User(
  (({firstName, lastName, password, email, dateCreated}) =>
   ({firstName, lastName, password, email, dateCreated}))(req.body)
);