Javascript (ES6),基于关闭变量的解构
Javascript (ES6), destructure based off variable
我想知道是否有一种方法可以使用变量来解构 javascript 中的对象。当我在我的函数中做这样的事情时 -
mutateTaxon(data) {
const { content } = data;
const { plp } = content || {};
...
这工作正常,但我需要根据另一个因素扩展此功能,如果我需要使用 data.content
(它现在正在使用)或 data.collection
,这个因素可能会改变。所以我在 data
上有另一个节点 - 它改变了调用。我正在尝试这样的事情 -
mutateTaxon(data) {
const match = lowerCase(data.taxonomy.name);
const { match } = data;
const { plp } = match || {};
匹配变量的计算结果为内容或集合(如预期)。但是,这似乎不起作用,也许这是不可能的?我在想也许需要评估 match
var 所以我尝试了类似 -
const { [[match]] } = data;
这也不起作用。也许这是不可能的,或者我正在接近这个错误。我想知道,这样的事情可能吗?谢谢!
const key = lowerCase(data.taxonomy.name);
const match = data[key];
我认为对象解构在这里没有用。但如果你需要:
const key = lowerCase(data.taxonomy.name);
const {[key]: match} = data;
正如 Jonas W. 所说,解构语法会比方括号表示法麻烦一点,但是尽管如此,您还是可以这样做:
mutateTaxon(data) {
const key = lowerCase(data.taxonomy.name);
const { [key]: { plp } = {} } = data;
演示
const foo = { bar: { plp: 'success' } }
const key = 'bar'
const { [key]: { plp } = {} } = foo
console.log(plp)
并确认默认参数 = {}
按预期工作:
const foo = { }
const key = 'bar'
const { [key]: { plp } = {} } = foo
console.log(plp)
我想知道是否有一种方法可以使用变量来解构 javascript 中的对象。当我在我的函数中做这样的事情时 -
mutateTaxon(data) {
const { content } = data;
const { plp } = content || {};
...
这工作正常,但我需要根据另一个因素扩展此功能,如果我需要使用 data.content
(它现在正在使用)或 data.collection
,这个因素可能会改变。所以我在 data
上有另一个节点 - 它改变了调用。我正在尝试这样的事情 -
mutateTaxon(data) {
const match = lowerCase(data.taxonomy.name);
const { match } = data;
const { plp } = match || {};
匹配变量的计算结果为内容或集合(如预期)。但是,这似乎不起作用,也许这是不可能的?我在想也许需要评估 match
var 所以我尝试了类似 -
const { [[match]] } = data;
这也不起作用。也许这是不可能的,或者我正在接近这个错误。我想知道,这样的事情可能吗?谢谢!
const key = lowerCase(data.taxonomy.name);
const match = data[key];
我认为对象解构在这里没有用。但如果你需要:
const key = lowerCase(data.taxonomy.name);
const {[key]: match} = data;
正如 Jonas W. 所说,解构语法会比方括号表示法麻烦一点,但是尽管如此,您还是可以这样做:
mutateTaxon(data) {
const key = lowerCase(data.taxonomy.name);
const { [key]: { plp } = {} } = data;
演示
const foo = { bar: { plp: 'success' } }
const key = 'bar'
const { [key]: { plp } = {} } = foo
console.log(plp)
并确认默认参数 = {}
按预期工作:
const foo = { }
const key = 'bar'
const { [key]: { plp } = {} } = foo
console.log(plp)