命名;在 javascript 中动态创建一个变量

Naming; dynamically create a variable in javascript

为了避免 javascript 堆问题,我使用多个数组:family1、family2、family3 ...、dogs1、dogs2、dogs3 ...使用示例:'family1 and dogs1',或 'family132 and dogs132' 创建一个新数组 'results'.

如何正确传递 "id"

let  id = 'value here'
this.family + id
this.dogs + id

到目前为止,我的 str 本身已被推入新数组:t-h-i-s-.-f-a-m-i-l-y-1

for (let i = +0; i < +20; i++) {

  const id = 1;
  let str = 'this.family'+id;   // ?
  let str = 'this.dogs'+id;   // ?

  console.log(str);

  const result = {
      familyType: str[i],       // behavior: t-h-i-s-.-f-a-m-i-l-y-1
      protocol: this.dogs1[i],  // expected original behavior
  };

  results.push(result);

}

}

您正在寻找:

let str = this['family'+id]; 

但这通常是一种糟糕的设计模式。不要用递增的数字命名你的变量。使用二维数组(即以数组作为值的数组),例如 this.dog[id][i]。如果你有"a javascript heap problem",那么它是由其他代码引起的。