Выбор имени переменной класса на основе индекса - PullRequest
1 голос
/ 06 апреля 2020

Моя ситуация такова: я вызываю функцию, которая принимает индекс, и мне нужно вернуть имя переменной объекта. Мой код похож на приведенный ниже код:

  switch (boardIndex) {
      case 0:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys1);
      case 1:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys2);
      case 2:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys3);
      case 3:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys4);
      case 4:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys5);
      case 5:
        return this.returnPlatformStatus(this.loginObjArr[arrIndex].sys6);

И этот код похож на индекс в диапазоне [0-20]. Мне надоело каждый раз ставить этот выключатель. Есть ли способ, как мы можем построить имя переменной на основе индекса?

1 Ответ

2 голосов
/ 06 апреля 2020

Вы можете сделать вашу структуру данных заново, чтобы упростить ее, сделав этот объект массивом, или сформировать имена свойств с помощью простой конкатенации строк:

return this.returnPlatformStatus(this.loginJobArr[arrIndex]["sys" + (boardIndex + 1)]);

Имена свойств объекта в JavaScript всегда может быть создан динамически через строковое выражение. В этом примере "sys" + (boardIndex + 1) создаст строки, как в опубликованном коде, "sys1", "sys2", et c. Оператор [ ] разрешает доступ к свойствам для объектов так же, как для массивов; В конце концов, массивы являются объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...