是否可以从使用另一个解构参数作为键传入的对象中获取解构变量?
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/