我想知道是否有办法使用变量来解析javascript中的对象。我在我的职能部门做了类似的事情 -
[['hello', 'bye', 'start'], ['john', 'riya', 'tom']]
这工作正常,但是如果我需要使用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 || {};
var,所以我尝试了类似的东西 -
match
也不起作用。也许这是不可能的,或者我正在接近这个错误。我想知道,这样的事情可能吗?谢谢!
答案 0 :(得分:7)
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)

答案 1 :(得分:6)
const key = lowerCase(data.taxonomy.name);
const match = data[key];
我不认为对象解构在这里很有用。但如果你需要:
const key = lowerCase(data.taxonomy.name);
const {[key]: match} = data;