Есть такой вот кусочек из кода. Не судите код строго, т.к это мой самый первый код для собственной игры. И это лишь его частичка, где человеку нужно выбрать персонажа.
function selectGirl() {
//Здесь я получаю всех возможных персонажей на выбор.
let witch = document.querySelectorAll('.witches__item a img'),
listWitches = document.querySelector('.witches'),
arrWitches = ['girlm1', 'girlm2', 'girlm3', 'girlm4'];
//Этот цикл нужен, чтобы повесить на все картинки событие клика.
for( let i = 0; i < witch.length; i++ ) {
witch[i].onclick = function() {
//Этот цикл нужен, чтобы точно знать, какую конкретно картинку я выбрал.
for( let j = 0; j < arrWitches.length; j++ ) {
// Здесь находит нужный путь до выбранной картинки, чтобы я мог определить какую из переменных выбрать
if(witch[i].getAttribute('src').includes(arrWitches[j])) {
listWitches.style.display = 'none';
draw(eval('girl' + [j + 1])); //Это и есть проблемная часть, где без eval передается строка.
break;
}
}
};
}
}
Суть такая, что мне надо в функцию draw(eval('girl' + [j + 1])) аргументом передавалась переменная,а не строка.
Я добавил eval, чтобы передавать именно переменную, а не строку, но чуть позже вычитал, что так рискованно. Есть ли какие-то альтернативы? Или может как-то код переписать.