 
			
				29.03.2023, 23:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.01.2019 
					
					
					
						Сообщений: 163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Подобие индексированных массивов.
			 
			
		
		
		
		Всем привет! 
 
В php при обработке результатов я использую массивы. Так как заранее неизвестно какие модули попадут в тест, то делаю типа так 
 
Для правильного ответа 
$arr[КодМодуля][0] += 1; 
Для подсчета вопросов в модуле 
$arr[КодМодуля][1] += 1; 
 
То есть я знаю, что в 0 элементе хранятся правильные ответы, а в первом общее количество вопросов. 
 
Но в js я не могу задать свой индекс массива, а тупо гонять циклы и при совпадении КодМодуля считать выглядит не очень. 
 
Как правильно в js делать такие задачи? 
 
Спасибо 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 00:29
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от savsoft
			
		
	 | 
 
	| 
		Подобие индексированных массивов.
	 | 
 
	
 
 Возможно тебя устроят объекты...
 
const o = {
  'Модуль 1': [0, 0],
  'Модуль 2': [0, 0],
  'Модуль 3': [0, 0],
}
o['Модуль 2'][0] += 1
// или так
++o['Модуль 2'][1]
alert(JSON.stringify(o, null, 2))
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 00:43
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.01.2019 
					
					
					
						Сообщений: 163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	
		Возможно тебя устроят объекты... 
 
[JS run]const o = { 
  'Модуль 1': [0, 0], 
  'Модуль 2': [0, 0], 
  'Модуль 3': [0, 0], 
}
	 | 
 
	
 
 Модуль 1,2,3 можно задавать динамически или только при описании?
 
Хотя в любом случае объекты подходят. Спасибо.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось savsoft, 30.03.2023 в 00:48.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 01:10
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.01.2019 
					
					
					
						Сообщений: 163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	
		Возможно тебя устроят объекты... 
o['Модуль 2'][0] += 1
	 | 
 
	
 
 Попробовал код модуля задавать так
 
const marr = [3441, 3442, 3443];
 
o[marr[0]][0] += 1
 
Вроде работает, но правильно ли так? Проблем не будет?  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось savsoft, 30.03.2023 в 01:28.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 10:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от savsoft
			
		
	 | 
 
	| 
		но правильно ли так?
	 | 
 
	
 
 Ты же вроде такое и хотел...
 
	
 
	| 
		
			Сообщение от savsoft
			
		
	 | 
 
	| 
		Проблем не будет?
	 | 
 
	
 
 У объектов есть ограничение по ключам... Они будут "переделываться" в строки. Если твой "КодМодуля" это просто набор из цифр - проблем не будет.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 10:51
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от savsoft
			
		
	 | 
 
	| 
		Модуль 1,2,3 можно задавать динамически или только при описании?
	 | 
 
	
 
 "Модуль N" я написал только для примера... 
Так же хотел показать что ключи это именно строки. Т.ч. вои циферки (коды) будут записаны как строки
 
const o = {
  '3441': [0, 0],
  '3442': [0, 0],
  '3443': [0, 0],
}
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 12:37
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 03.01.2019 
					
					
					
						Сообщений: 163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от ksa
			 
		
	 | 
 
	
		Ты же вроде такое и хотел... 
 
 
У объектов есть ограничение по ключам... Они будут "переделываться" в строки. Если твой "КодМодуля" это просто набор из цифр - проблем не будет.
	 | 
 
	
 
 Да, именно это я и спрашивал. Смутило, что ключ в кавычках. А я вставил просто цифровое значение из массива. Но если оно само "переделывается" в строки, и с цифрами проблем нет, то это именно то, что мне нужно. Попробовал, все работает.
 
Большое спасибо!  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				30.03.2023, 14:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 CacheVar 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 19.08.2010 
					
					
					
						Сообщений: 14,298
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от savsoft
			
		
	 | 
 
	| 
		Смутило, что ключ в кавычках
	 | 
 
	
 
 Не всякая строка может быть использована без кавычек...   
Например такое можно и без кавычек
 
const o = {
   test: [0, 0],
   test123: [0, 0],
   test_new: [0, 0],
   $test: [0, 0],
}
alert(JSON.stringify(o, null, 2))
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |