JS-通过仅选择所需内容进行销毁

时间:2018-11-26 17:53:43

标签: javascript ecmascript-6 destructuring

我试图了解ES6,特别是解构功能。

如何使用解构转换这些行?

  const user = {...}
  const sessionData = ({
      session_id: user.session_id, 
      selector: user.selector, 
      validator: user.validator
  })

我尝试过

const sessionData = {session_id, selector, validator} = user

但是它会引起语法错误,因为解构当然是为了给某个变量提供对象的值,但是我不知道如何使用object

3 个答案:

答案 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);

但是请记住,如果未声明用于分配解构的变量,则逗号运算符会创建全局变量。希望这会有所帮助。