Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Двумерный массив. Проверка есть ли подмасив массива в другом массиве (https://javascript.ru/forum/misc/74090-dvumernyjj-massiv-proverka-est-li-podmasiv-massiva-v-drugom-massive.html)

laimas 13.06.2018 13:27

Цитата:

Сообщение от рони
элементы удаляются из массива

Да, splice, а я прочел как срез. :)

А если удаляются, значит повторно нельзя использовать.

Хомяк 16.06.2018 00:01

Не могу понять, что не так с этими кнопками :(

var data_array = [
	  ["Вопрос","Неверный ответ","Неверный ответ","Верный","ком1",3],
	  ["Вопрос","Неверный ответ","Верный","Неверный ответ","ком2",2],
	  ["Вопрос","Верный","Неверный ответ","Неверный ответ","ком3",1],
	  ["Вопрос","Неверный ответ","Неверный ответ","Верный","ком4",3],
	  ["Вопрос","Неверный ответ","Неверный ответ","Верный","ком5",3],
	  ["Вопрос","Верный","Неверный ответ","Неверный ответ","ком6",1],
	];

	
	
	var prov = []; //пустой массив, в который будут записывать используемые строки массива
	var p=0; //подсчёт количества правилных ответов
	var i=0;
	var plus = 0;
	var cur_answer = 0;
	
	
	 while (i++<3)  //повторение цикла три раза 0-2
{
         var rand = Math.floor(Math.random()*data_array.length); //рандомный выбор индекса
		       function check(num){

		             if(num == 0){ 
		 
		                document.getElementById("var1").style.display="block";
						document.getElementById("var2").style.display="block";
						document.getElementById("var3").style.display="block";
						document.getElementById("question").style.display="block";
		   
						document.getElementById('var1').innerHTML=rand[cur_answer][1];
						document.getElementById('var2').innerHTML=rand[cur_answer][2];
						document.getElementById('var3').innerHTML=rand[cur_answer][3];
						document.getElementById('question').innerHTML=rand[cur_answer][0];
						
						document.getElementById('start').style.display='none';
						
						}
						else {
						    if( num ==  rand[cur_answer][4]){
								plus++;
				
							}
							else{
							document.getElementById('result').innerHTML="Неверно!" + rand[cur_answer][rand[cur_answer][5]]; //вывод комментария 
							}
						}
			    }
			prov = prov.concat(data_array.splice(rand,1)); //отрезаем выбранный элементв другой массив, чтобы он больше не попадался
}

			}

<p style="font-size: 14px;font-weight: bold;padding-top: 2px; line-height: 1.5; " id="question"></p>

        <button onclick="check(1)" id="answ1"></button>
		
		<button onclick="check(2)" id="answ2"></button>
		
		<button onclick="check(3)" id="answ3"></button>
		
<p style="font-size: 14px;font-weight: bold;padding-top: 2px; line-height: 1.5; " id="result"></p>		
<button id="start" onclick="check(0)">Приступить к тесту</button>

j0hnik 16.06.2018 00:09

вы к числу обращаетесь как массиву

var rand = Math.floor(Math.random()*data_array.length); //рандомный выбор индекса


if( num ==  rand[cur_answer][4]){


rand это число просто

Хомяк 16.06.2018 00:33

Хм, а как тогда использовать именно выбранный подмассив?

j0hnik 16.06.2018 00:36

data_array[rand][какойтономер]

Хомяк 16.06.2018 02:04

Всё равно что-то не так :(


Часовой пояс GMT +3, время: 14:41.