Менеджер тегов Google не переопределяет объект при установке нового в цикле - PullRequest
0 голосов
/ 05 июля 2018

Я хотел бы установить несколько объектов в массиве для хранения их в локальном хранилище.

Но когда я зацикливаюсь на массиве и хочу установить свойства и значения объекта, он сохраняет только последнее значение. Это логично, но как я могу сохранить оба этих объекта в массиве с одинаковыми свойствами, не создавая новый объект.

Здесь под кодом:

for (var test in tests) {
  if (typeof localStorageObj === "undefined" && typeof localStorageArray === "undefined") {
    var localStorageObj = {};
    var localStorageArray = [];
  }

  localStorageObj.id = tests[test].id;
  localStorageArray.push(localStorageObj);
  console.log(localStorageObj, localStorageArray);
  localStorage.setItem('gtmTest', JSON.stringify(localStorageArray));
}

Имейте в виду, что менеджер тегов Google не поддерживает синтаксис es6.

1 Ответ

0 голосов
/ 05 июля 2018

Прежде всего, странно, что вы все делаете в цикле. Почему бы вам не объявить свои переменные перед циклом?

Во-вторых, почему бы вам не отправить данные после цикла?

Полагаю, ваша ошибка заключается здесь:

   if(typeof localStorageObj === "undefined" && typeof localStorageArray === "undefined"){ 
       var localStorageObj = {};
       var localStorageArray = [];
   }

Можешь попробовать?

var localStorageObj = {};
var localStorageArray = [];
for(var test in tests){
   localStorageObj.id = tests[test].id;
   localStorageArray.push(localStorageObj);
}
console.log(localStorageObj, localStorageArray);
 localStorage.setItem('gtmTest', JSON.stringify(localStorageArray));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...