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

时间:2018-01-13 11:29:24

标签: javascript arrays variables naming

为了避免javascript堆问题,我使用多个数组:family1,family2,family3 ...,dogs1,dogs2,dogs3 ...使用示例:'family1和dogs1',或'family132和dogs132'来创建一个新阵列'结果'。

如何正确传递“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);

}

}

1 个答案:

答案 0 :(得分:2)

您正在寻找:

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

但这通常是一种糟糕的设计模式。不要用增量数字命名变量。使用2D数组(即具有数组作为值的数组),如this.dog[id][i]。如果您有“javascript heap problem”,那么它是由其他一些代码引起的。