我有一个数组,其中包含一些要分解的元素,并将其用作对象分解。
我有这段代码,其中我正在从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中解构该元素的方法。
答案 0 :(得分:0)
正如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);
答案 1 :(得分:0)
假设req.body
是一个包含所有键/值的对象,而您只想要temp
数组中的值,请尝试:
const temp = Object.values(req.body)
如果您还希望键作为包含函数的变量公开 范围,则最好创建一个临时对象来存储它们,例如:
let tempObj = {}
Object.keys(req.body).forEach(key => { tempObj[key] = req.body[key] })
tempObj
将包含键/值,例如tempObj.city
,tempObj.companyName
。
希望这会有所帮助!