#javascript #variables #google-apps-script
#javascript #переменные #google-apps-script
Вопрос:
Я заметил странную ошибку при установке нового значения переменной. К сожалению, значение также было скопировано в другую переменную. У вас есть идея, что здесь происходит? Вот несколько снимков экрана во время отладки. Один непосредственно перед установкой нового значения и один сразу после. Вы можете видеть, как автоматически значение было скопировано в 2 разные переменные.
Вот файл, если вы хотите проверить его самостоятельно:
docs.google.com/spreadsheets/d/17L7KDVteaYUuBE8v5jRRUGBBHa5_Dg6dH0eQ8oDTde4/edit?usp=sharing
Заранее спасибо, ребята
Ответ №1:
Это не ошибка.
Присвоение массивов переменным происходит по ссылке (на ячейку памяти) в JavaScript и большинстве других языков программирования.
Рассмотрим этот упрощенный пример
a=[1];
b=a;
b[0]=2;
a
теперь [2]
Чтобы назначить копию, вам нужно создать копию, например, с помощью slice
c=a.slice();
c[0]=3;
a
теперь все еще будет [2]
и c
будет [3]
.
Так что попробуйте
red = temp[i].slice();
Комментарии:
1. Большое спасибо, друг 🙂