У меня есть массив объектов, которые я передал из JS в GS.
Вот пример того, как может выглядеть массив объектов (изменяется в зависимости от ввода пользователя)
var playersArray =
[
{number=1,
role=Arsonist,
deathStatus=false,
guardianTargetStatus=false,
executionerTargetStatus=false,
roleblockStatus=false},
{number=2,
role=Arsonist,
deathStatus=false,
guardianTargetStatus=false,
executionerTargetStatus=false,
roleblockStatus=false},
{number=3, role=Arsonist,
deathStatus=false,
guardianTargetStatus=false,
executionerTargetStatus=false,
roleblockStatus=false}
]
Во всем моем коде мне нужно вызвать некоторые данные из этого массива. Например
var roleList = playersArray.map(function(role) {return role.role;});
Browser.msgBox(playersArray[1]["role"]);
Когда я передаю этот PlayersArray напрямую между функциями, все работает нормально.
К сожалению, для одной из моих функций мне нужно получить этот массив, не передавая его напрямую.
Поэтому я установил playerArray как свойство в GS
PropertiesService.getScriptProperties().setProperty('playersArray', JSON.stringify(playersArray));
Затем я использую getProperty внутри соответствующей функции, чтобы получить этот массив:
var playersArray = PropertiesService.getScriptProperties().getProperty('playersArray');
playersArray = playersArray.replace(/\"/g, "").replace(/\:/g, "=");
playersArray = playersArray.split(",");
По какой-то причине функция не может правильно видеть массив, когда я это делаю:
var roleList = playersArray.map(function(role) {return role.role;});
Browser.msgBox(playersArray[1]["role"]);
Пожалуйста, помогите мне решить эту проблему. Если решение, которое я использую для передачи массива как глобального, нежизнеспособно, я рад видеть другие решения. Но он должен быть глобальным, потому что я не могу передать массив напрямую между функциями.