javascript - 使用解构对象中的对象和键解构参数?

标签 javascript ecmascript-6 destructuring

是否可以从使用另一个解构参数作为键传入的对象中获取解构变量?

var test = { 
    a: { 
        b: 'c' 
    },
    access: 'b' 
};

myFunc(test);

function myFunc( { a : { access /*???*/ } } ) {
    console.log(/*???*/);  // should output 'c'
}

工作方式-

function myFunc( { a, access }) {
    console.log(a[access]);  // should output 'c'
}

最佳答案

是的,可以使用计算属性名称来实现:

function myFunc( { access, a : { [access]: val } } ) {
    console.log(val); // does output 'c' when called with test
}

在访问 a 的属性之前,您需要确保首先初始化 access

不过,我建议避免这种情况,它会让任何读者感到困惑。不要试图表现得聪明。你的工作方式也是最具可读性的方式。

关于javascript - 使用解构对象中的对象和键解构参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47763647/

相关文章:

javascript - 为什么 JavaScript 中的 getDay() 返回一周中的+1天?

javascript - 如何在 HTML5 Canvas 上翻转和旋转图像

javascript - JS 中的连接函数

闭包中的 Javascript 类库

javascript - 解构分配中的 Prop 可以就地转换吗?

TypeScript 解构了带有类型或接口(interface)的默认参数

typescript - 将类型断言与解构赋值结合使用的最佳方式是什么?

javascript - Excel 格式设置 table2excel.js

javascript - jQuery 的 API 问题

javascript - 点击处理程序 ECMAscript 6 中的范围