Эта тема надеюсь многим помогла. 
	 | 
	
		
 Всем привет! 
	Нужна помощь, казалось бы, в элементарной штуке. Упёрся в вот в это: 
var m;
var mirror = [];
var comb = [1,0,0];
mirror[0] = comb;
for(var x = 0; x < 1; x++) {
	mirror[0][x] = comb[-1];
	//m = comb[-1];
}
alert(comb[0]); //undefined
В общем, впервые столкнулся с тем, что переопределяется переменная (массив), находящаяся справа. Это дополнительный вопрос: как такое возможно? Если внутри цикла выполнить вторую строку, то переопределения элемента массива comb не происходит, то есть работает как полагается. Следовательно, на правую часть каким-то образом влияет многомерный массив слева... Мне нужно переопределить элемент многомерного массива значением из обычного массива. Основной вопрос: как, сохранив основную идею скрипта, избежать переопределения массива справа? Буду признателен за помощь.  | 
	
		
 vitoff, а откуда у массива свойство -1? Оно и выдаёт undefined. 
	 | 
	
		
 vitoff, Массив в javascript (да и почти везде) передается по ссылке, не по значению.  
	То есть технически в результате такой конструкции var comb = [1,0,0]; mirror[0] = comb; mirror - это не просто какой-то отдельный массив [[1,0,0]] Это [ссылка на массив comb]; То есть массив, первым элементом которого является та самая штука, которую вы присвоили, сама переменная, а не значение этой штуки. Более-менее ясно? Это кажется одна из вещей часто путающих новичков в программировании  | 
	
		
 Цитата: 
	
 Цитата: 
	
 Просто раньше с таким не сталкивался, но припоминаю какую-то таблицу связей "переменная-значение". И если я правильно понимаю, то в моём случае mirror[0] не содержал своего значения, а была установлена связь с чужим значением, то есть с comb. Верно? И если верно, то может дадите идею, как это можно обойти, то есть как mirror[0] передать значение, а не связь? Цитата: 
	
  | 
	
		
 Цитата: 
	
 mirror[0] = comb.slice();  | 
	
		
 vitoff, 
	Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 Подробнее смотри по ссылке выше. При непонимании можно попробовать прочитать весь раздел сначала Как обойти сказал Рони. Этой строчкой он создает копию массива и присваивает вашей переменной ее. (Однако нужно понимать что если элементами копируемого массива являются ссылки, то их эта штука тоже скопирует).  | 
	
		
 Цитата: 
	
 var arr = [1,2, [3,4,5]], copy_arr = JSON.parse(JSON.stringify(arr)); arr[2][0] = 99999999; alert(arr); alert(copy_arr);  | 
	
		
 Понимать что будет в результате достаточно, грузиться разными способами клонирования объекта и их отличием не надо (пока) =) 
	 | 
	
		
 В общем, свою проблему я решил. Всех, благодарю за помощь. 
	А эту статью тоже теперь рекомендую новичкам, что бы не попадали в такие ситуации: Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 10:56. |