@WebNerd
It's time to hunt

Как строку превратить в переменную в JS?

Есть такой вот кусочек из кода. Не судите код строго, т.к это мой самый первый код для собственной игры. И это лишь его частичка, где человеку нужно выбрать персонажа.

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, чтобы передавать именно переменную, а не строку, но чуть позже вычитал, что так рискованно. Есть ли какие-то альтернативы? Или может как-то код переписать.
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы