Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.05.2016, 10:37
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

Объяснил сам себе
Здравствуйте, я попытался сам себе объяснить, как работает кусок кода. Скажите, правильно ли я понимаю или что-то упускаю или что-то понимаю неверно?
function kontroll9(){
		var answer = document.getElementById("otvet9"), - переменная, которая будет хранить элемент в html коде, который отвечает за блок, выводящий ответ.

			vastus = document.getElementsByName("v9"), - создается переменная vastus, которая хранит в себе группу элементов (radio или checkbox) под определенным айди в html коде

			array = [1,1,1,0]; //массив булевских значений, верные ответы 1

			array = array.every(function(check, i){ // перебор элементов в массиве. переменной array присваивается значение массива, обработанного функцией every. every это функция, которая проверяет все ли элементы в массиве прошли тест, который задан функцией. Сама функция задает правило, при котором функция возвращает значение параметра check, в случае если функция every прошла успешно проверку по заданному критерию, то есть равна булевому значению true. 

				return check == vastus[i].checked - возвращает значение параметра check, в случае если функция every прошла успешно проверку по заданному критерию, то есть по значениям, которые находятся в массиве array

			})
			answer.innerHTML = array ? "верно" : "неверно"; - в элементе answer выводится значение, которое получается при проверке переменной array. знак ? означает, что если значение true, то выводится надпись "верно", а : означает, что иначе выводится "неверно".			
			answer.style.color = array ? "green" : "red";
			array && correct++; - увеличивает количество правильных ответов на 

1. 
	};

и ещё, я не пойму, зачем тут в конце не только correct++ но и array++???
спасибо заранее
Ответить с цитированием
  #12 (permalink)  
Старый 26.05.2016, 10:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Lecseus
array++???
где это в коде?
array && correct++; тоже что if(array == true) correct++; если ответ правильный общее количество правильных ответов увеличить на 1.
Ответить с цитированием
  #13 (permalink)  
Старый 26.05.2016, 10:53
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

СпасибО!!!!
Точно, нет такого в коде, невнимателен. А так понимаю верно?
Ответить с цитированием
  #14 (permalink)  
Старый 26.05.2016, 11:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Lecseus
А так понимаю верно?
да ... массив в переменной array превращается Boolean-объект (true/false)

Последний раз редактировалось рони, 26.05.2016 в 11:08.
Ответить с цитированием
  #15 (permalink)  
Старый 26.05.2016, 11:10
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

большая благодарность!
Ответить с цитированием
  #16 (permalink)  
Старый 26.05.2016, 11:17
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Lecseus,
Сообщение от Lecseus
vastus = document.getElementsByName("v9"), - создается переменная vastus, которая хранит в себе группу элементов (radio или checkbox) под определенным айди в html коде
Небольшая неточность.
Не айди, а нейм.
Кроме того, у группы элементов не может быть одинакового айди (написать можно, работать будет неправильно, вообще непредсказуемо)
Ответить с цитированием
  #17 (permalink)  
Старый 26.05.2016, 11:45
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

Сообщение от Dilettante_Pro Посмотреть сообщение
Lecseus,

Небольшая неточность.
Не айди, а нейм.
Кроме того, у группы элементов не может быть одинакового айди (написать можно, работать будет неправильно, вообще непредсказуемо)
точно. благодарю!
Ответить с цитированием
  #18 (permalink)  
Старый 26.05.2016, 12:01
Аспирант
Отправить личное сообщение для Lecseus Посмотреть профиль Найти все сообщения от Lecseus
 
Регистрация: 13.08.2015
Сообщений: 45

Интересно получается, то есть массив становится булевым значением только в двух положениях [1,0,1,1] - true, а [0,1,0,0] - false и никак иначе.
Ответить с цитированием
  #19 (permalink)  
Старый 26.05.2016, 12:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Lecseus,
нет массив становится true только при одном правильном ответе из 16 возможных
Ответить с цитированием
  #20 (permalink)  
Старый 26.05.2016, 12:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Lecseus,

все четыре чекбокса должны быть правильно выбраны
<script>
  for (var i=0; i<16; i++)  {
  var a = ("000"+i.toString(2)).substr(-4),
  b = [1,0,1,1].every(function(el,k) {
  return el == a[k]
})
  document.write(a+" => "+b+"<br>")}
  </script>

Последний раз редактировалось рони, 26.05.2016 в 12:38.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите пожалуйста как мне можно изменить этот скрипт Niko Общие вопросы Javascript 3 15.04.2013 15:35
Подскажите пожалуйста как мне можно изменить этот скрипт Niko jQuery 0 13.04.2013 14:47
Как работает этот код doox911 Общие вопросы Javascript 11 02.04.2013 01:27
Как писать код который легко поддерживать, расширять, читать. Policeman Общие вопросы Javascript 3 24.03.2012 05:40