Показать сообщение отдельно
  #2 (permalink)  
Старый 28.03.2011, 19:53
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

по-моему,лучше (красивее будет код и его доработка в дальшейшем) это сделать не через массивы,а через хеши ( ассоциативные массивы,короче ) )

a = {
   'вопрос 1' : { 
         'вопроc' : ' Что такое JS ? ',
         'ответы' : [ 'JavaScript', 'JopaScript', 'JavaSuck', ' не знаю '  ],
         'ответ' : 'Javascript'
   },

   'вопрос 2' : { 
         'вопроc' : 'Что вернет  Number.MIN_VALUE > 0 ',
         'ответы' : [ 'true', 'false', 'Error', ' не знаю '  ],
         'ответ' : 'true'
   }
}




1.подскажите пожалуйста функцию чтобы изменить значение массива на 5 вперед
????????????
в будущее чтоли??

2.также интересует функция, с помощью которой сравнивать выбранный ответ с правельным и оповестить нас в алерте
всем заранее спасибо!!!

в случае с моим (хеш) , это :

var vopros = '2', // номер вопроса ( индекс)
     otvet = 4 // ответ - индекс из массива ответов. лучше, если это циферка
     
var hash = a['вопрос '+vopros]; // копия хеша (массива) второго вопроса

var answer = hash['ответы']; // копия хеша ответов для второго вопроса

var answered = answer[otvet] //  т.к. otvet = 4, то в answered будет храниться строка 'не знаю'

var right = hash['ответ']; // это строка ответа для вопроса

alert (   right == answered  ) ; // для нас false


а теперь можно и сделать функцию

// имя функции camelStyle :)

checkAnswer = function(vopros,otvet){ 

var hash = a['вопрос '+vopros],
               answered = hash['ответы'][otvet], // короткая запись,без создания answer
              right = hash['ответ'];

return  right == answered ; //возвращаем bool
}

//попробуем ответить на первый вопрос первым вариантом ответа

alert (  checkAnswer(1,1 ) ? "Правильно":"Неверно"  );


я изложил примерную логику, с примерами

за работоспособность пока не отвечаю ( не научился пока писать сообщения так,чтобы можно было запустить скрипт и протестировать прямо тут )
Ответить с цитированием