[英]Is there any way to use array contents in object destructuring
我有一个数组包含我想要解构它的元素并将它们用作对象解构。
我有这个代码,我从req.body中解构密钥。
const {
city,
companyName,
contactName,
contactTitle,
country,
email,
fax,
password,
phone,
role,
} = req.body;
我想为所有数据使用数组,例如。
const temp = [
city,
companyName,
contactName,
contactTitle,
country,
email,
fax,
password,
phone,
role,
];
并使用此数组作为对象解构中的键根据我:
const { [... temp ]} = req.body;
我知道这是错的,但有些东西我可以使用这个数组并从req.body中解构出那些元素。
正如Rajesh在评论中提到的,你不能这样做。
对象解构是一些糖语法,可以帮助您在大多数用例中编写更清晰的代码。 在您的情况下,由于您需要某些特定的东西(重新使用属性名称列表),您可以创建自己的函数来模仿您想要的行为:
function extractVars(from) {
const myVarList = [
'city',
'companyName',
'contactName',
'contactTitle',
'country',
'email',
'fax',
'password',
'phone',
'role'
];
const vars = {};
for (let v of myVarList) {
vars[v] = from[v];
}
return vars;
}
const vv = extractVars(req.body);
假设req.body
是一个包含所有键/值的对象,并且您只想要temp
数组中的值,请尝试:
const temp = Object.values(req.body)
如果您还希望在包含函数的作用域中将键作为变量公开,则最好创建一个临时对象来存储它们,例如:
let tempObj = {}
Object.keys(req.body).forEach(key => { tempObj[key] = req.body[key] })
然后tempObj
将包含键/值e,g。 tempObj.city
, tempObj.companyName
。
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.