Прежде всего, странно, что вы все делаете в цикле. Почему бы вам не объявить свои переменные перед циклом?
Во-вторых, почему бы вам не отправить данные после цикла?
Полагаю, ваша ошибка заключается здесь:
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));