Вы немного нарисовали себя в углу, используя имена переменных, такие как prodcat5
, потому что вы не можете по-настоящему перебрать их без использования страшной функции eval()
.
let arr = [];
for (let i=1; i<=10; i++) {
if (eval("prodcat" + i)) {
arr.push("prodcat" + i);
}
}
Это довольноплохой способ сделать это, eval()
, как правило, может представлять угрозу безопасности.
Еще одно решение, возможно, лучшее (если вы запускаете код в браузере), это то, что придумал ThatBrianDudeс помощью (см. ниже), с помощью (ab) объекта window
.
Но все эти решения имеют недостатки, поскольку проблемы можно легко избежать.Намного лучшим решением было бы иметь массив с именем prodcat
и хранить в нем значения следующим образом:
prodcat[0] = true;
prodcat[1] = false;
/* etc... */
Тогда вы можете легко перебирать их.