我试图了解ES6,特别是解构功能。
如何使用解构转换这些行?
const user = {...}
const sessionData = ({
session_id: user.session_id,
selector: user.selector,
validator: user.validator
})
我尝试过
const sessionData = {session_id, selector, validator} = user
但是它会引起语法错误,因为解构当然是为了给某个变量提供对象的值,但是我不知道如何使用object
答案 0 :(得分:1)
使用
const { session_id, selector, validator } = user;
然后
const sessionData = { session_id, selector, validator };
答案 1 :(得分:0)
您也可以这样做(使用匿名函数)
const user = { session_id: 1, selector: "my-selector", validator: 1, unused: 3 };
const session = (({ session_id, selector, validator }) => ({ session_id, selector, validator }))(user);
console.log(session);
答案 2 :(得分:-1)
您可以使用函数来创建具有所需字段的新对象。
const original = { a: 1, b: 2, c: 3 };
const pick = (o, fields) => fields.reduce((acc, key) => {
acc[key] = o[key];
return acc;
}, {});
console.log(pick(original, ['a', 'b']));
或使用comma operator进行分解和分配。
const original = { a: 1, b: 2, c: 3 };
const newone = ({ a, b } = original, { a, b });
console.log(newone);
但是请记住,如果未声明用于分配解构的变量,则逗号运算符会创建全局变量。希望这会有所帮助。