我有以下对象:
original = {userName: "pepe", pass: "password", otherFields: "blabla"}
我想解构它以获得只有一个字段的另一个对象:userName
如果我这样做:
const {userName} = original
console.log(JSON.stringify(userName)) ---> "pepe", but I would like to obtain {userName: "pepe"}
或者
var newObj = {userName} = original
console.log(JSON.stringify(newObj)) ---> {userName: "pepe", pass: "password", otherFields: "blabla"}
我希望在{userName: "pepe"}
之后获得running JSON.stringify(...)
,因为这样可以更轻松地在正文部分中使用此数据fetch
。
我发现这样做的唯一方法如下:
const _body = {}
_body.userName = original.userName
body: (JSON.stringify(_body))
但是当我在身体中发送更多字段时,我需要在此代码中添加行。有没有更好的方法来做我想要的?
答案 0 :(得分:3)
基本上当你从对象中构造出你正在获得的价值时......值。因此,在这种情况下,userName
将返回字符串"pepe"
。您必须将新的对象字面值传入stringify
调用才能获得所需的结果:
const original = { userName: "pepe", pass: "password", otherFields: "blabla" };
const { userName } = original;
console.log(JSON.stringify({ userName }));
答案 1 :(得分:0)
如果您最终需要更多属性,可以使用rest运算符来执行此操作。
const original = {userName: "pepe", pass: "password", otherFields: "blabla"}
const {pass, otherFields, ...rest} = original
console.log(JSON.stringify(rest))
只有这条路线才有,如果你有原始属性,你可能不想进入stringify,你必须将它们添加到解构,所以“休息”操作符不会选择它们。