如何在 angular/typescript 中执行字符串插值以从变量中访问值?

How to perform string interpolation in angular/typescript to access value from within a variable?

我有一个变量,比如:

demoVars:any[];

它还有 3 个属性,var1、var2、var3。

demoArr=[];

现在,在我的组件 class 中,我有一个变量 'selectedVar',它等于 属性 之一的名称; var1var2var3

现在我要实现:

for( const demoVar of this.demoVars)
this.demoArr.push(demoVar.var1);

for( const demoVar of this.demoVars)
this.demoArr.push(demoVar.var2);

for( const demoVar of this.demoVars)
this.demoArr.push(demoVar.var3);

取决于 selectedVar 的值。

如果我使用:

for( const demoVar of this.demoVars)
this.demoArr.push(`demoVar.${this.selectedVar}`);

它推送字符串而不是值;

我想做类似的事情

for( const demoVar of this.demoVars)
this.demoArr.push(demoVar.`${this.selectedVar}`);

正确的语法是什么,或者正确的方法是什么?

使用括号表示法:

for( const demoVar of this.demoVars) {
    this.demoArr.push(demoVar[this.selectedVar]);
}

为了额外的安全,你可以检查对象是否有这样的 属性:

for( const demoVar of this.demoVars) {
    if (demoVar.hasOwnProperty(this.selectedVar)) {
        this.demoArr.push(demoVar[this.selectedVar]);
    }
}