Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2016, 10:36   #1
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию Что они сделали с массивами в JS????????

Я... я... мягко сказать, потерялся...


Код:
var arrr  = new Array(3).fill(new Array(3).fill(-1));
	for(var i =0; i <3; i++)
		for(var j =0; j <3; j++)
			console.log("arrr[" + i+"]["+j+"] : " +arrr[i][j]);
	console.log("-----------------------");
	
	arrr[1][1] = 1;

	for(var i =0; i <3; i++)
		for(var j =0; j <3; j++)
			console.log("arrr[" + i+"]["+j+"] : " +arrr[i][j]);
В консоль:
Код:
arr.html:15 arrr[0][0] : -1
arr.html:15 arrr[0][1] : -1
arr.html:15 arrr[0][2] : -1
arr.html:15 arrr[1][0] : -1
arr.html:15 arrr[1][1] : -1
arr.html:15 arrr[1][2] : -1
arr.html:15 arrr[2][0] : -1
arr.html:15 arrr[2][1] : -1
arr.html:15 arrr[2][2] : -1
arr.html:16 -----------------------
arr.html:22 arrr[0][0] : -1
arr.html:22 arrr[0][1] : 1
arr.html:22 arrr[0][2] : -1
arr.html:22 arrr[1][0] : -1
arr.html:22 arrr[1][1] : 1
arr.html:22 arrr[1][2] : -1
arr.html:22 arrr[2][0] : -1
arr.html:22 arrr[2][1] : 1
arr.html:22 arrr[2][2] : -1
WTF???

Последний раз редактировалось Smogg; 04.03.2016 в 10:40.
Smogg вне форума Ответить с цитированием
Старый 04.03.2016, 11:05   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут массивы? Просто один и тот же объект у вас во всех трех ячейках массива.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.03.2016, 11:08   #3
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

О, как...
Smogg вне форума Ответить с цитированием
Старый 04.03.2016, 18:28   #4
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию

var arrr = new Array(3).fill(new Array(3).fill(-1)); - эта хрень создаёт массив из трёх элементов и заполняет его ЕДИНСТВЕННОЙ ссылкой полученной от оператора new внутри скобок .fill(...). Т.е. получили и записали во все три ячейки копию ссылки на один массив.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Они что, издеваются? Juffin Свободное общение 10 10.03.2012 19:51
Что с файлом и как его, так сделали или изуродовали? valerij Microsoft Office Excel 4 10.01.2011 16:47
Что бы вы сделали если бы у вас оказался исходник планеты Земля? AngelOfDeath Свободное общение 18 13.04.2008 15:03
Что такое коды ASCII и зачем они?? Ларик Помощь студентам 2 27.01.2008 19:41