Циклический обход переменных в JavaScript

Привет всем! У меня возник вопрос по JavaScript. Я объявил кучу переменных (типа title1, title2, …, title9) и хочу их как-то обойти в цикле. Можно ли это сделать?

Вот пример моего кода:

let data = [];
let info = [];
let hints = [];

let item = {'data': someValue};
if(localStorage.getItem('data')) {
  let temp = JSON.parse(localStorage.getItem('data'));
  temp.forEach(el => data.push(el));
}
data.push(item);
localStorage.setItem('data', JSON.stringify(data));

Я хочу, чтобы похожий код автоматически генерировался для info и hints. Реально ли это? Может, есть какой-то способ динамически обращаться к переменным? Буду благодарен за любые идеи!

Дружище, лучше использовать объект вместо кучи отдельных переменных. Типа:

let storage = {
  data: [],
  info: [],
  hints: []
};

Тогда можно легко обойти все свойства в цикле:

for (let key in storage) {
  let item = {[key]: someValue};
  if (localStorage.getItem(key)) {
    storage[key] = JSON.parse(localStorage.getItem(key));
  }
  storage[key].push(item);
  localStorage.setItem(key, JSON.stringify(storage[key]));
}

Так код будет намного чище и гибче. Проверено на личном опыте!

слушай, а почему бы тебе не использовать массив объектов? это решит твою проблему на раз-два. вот смотри:

let items = [
  { name: 'data', value: [] },
  { name: 'info', value: [] },
  { name: 'hints', value: [] }
];

items.forEach(item => {
  let newItem = { [item.name]: someValue };
  if (localStorage.getItem(item.name)) {
    item.value = JSON.parse(localStorage.getItem(item.name));
  }
  item.value.push(newItem);
  localStorage.setItem(item.name, JSON.stringify(item.value));
});

tак ты сможешь легко добавлять новые элементы, не меняя основной код. и циклом пробежаться по всем переменным - вообще красота! я сам так делаю, когда нужно работать с похожими данными.

Чувак, а ты не думал про eval() попробовать? Типа так:

for (let i = 1; i <= 9; i++) {
let varName = ‘title’ + i;
eval(varName + ’ = “Значение ’ + i + '”');
}

Потом можешь в цикле обращаться к переменным через eval(varName). Только осторожно, eval() может быть опасной штукой, если не знать, что делаешь. Но для твоей задачи вполне покатит, имхо.