【问题标题】:Can I destructure a variable where property name defined by a variable itself?我可以解构由变量本身定义的属性名称的变量吗?
【发布时间】:2020-01-13 14:21:26
【问题描述】:

例如,我在 localStorage 对象属性中有 Meteor.userIdMeteor.loginToken。我可以将它们解构如下:

const {
      'Meteor.userId': userId,
      'Meteor.loginToken': loginToken,
    } = localStorage;

但是我可以将Meteor.userIdMeteor.loginToken 定义为变量吗?例如:

const METEOR_USER_ID = 'Meteor.userId';
const METEOR_LOGIN_TOKEN = 'Meteor.loginToken';

尝试使用以下代码,但不起作用:

const {
      METEOR_USER_ID: userId,
      METEOR_LOGIN_TOKEN: loginToken,
    } = localStorage;

【问题讨论】:

    标签: javascript ecmascript-6 destructuring


    【解决方案1】:

    您需要一个computed property 来获取变量的键。

    const {
        [METEOR_USER_ID]: userId,
        [METEOR_LOGIN_TOKEN]: loginToken,
    } = localStorage;
    

    【讨论】:

    • @Quentin,你错过了正确的键,从 'Meteor 开始。这不是对象的名称。
    • 啊。我把重命名功能的两个方面放在了我的脑海中。
    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-11-02
    • 1970-01-01
    • 2021-12-25
    • 2022-01-18
    相关资源
    最近更新 更多