ошибка, связанная с переменной Google script

#javascript #variables #google-apps-script

#javascript #переменные #google-apps-script

Вопрос:

Я заметил странную ошибку при установке нового значения переменной. К сожалению, значение также было скопировано в другую переменную. У вас есть идея, что здесь происходит? Вот несколько снимков экрана во время отладки. Один непосредственно перед установкой нового значения и один сразу после. Вы можете видеть, как автоматически значение было скопировано в 2 разные переменные.

Изображение 1

Изображение 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. Большое спасибо, друг 🙂