Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.08.2012, 16:30
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Вынести из под функции
Не знаю как это адекватно спросить, но суть вот в чем. Есть nodisplay и его значение должно быть в функции для каждого елемента массива. Одновременно в этом самом масиве есть значения, которые должны влиять на состояние nodisplay. В примере ниже nodisplay определяется в сам момент перебора. А можно ли вынести этот перебор за ф-цию. Чтоб в самой этой ф-цие было что-то типа nodisplay[i] ?

for(nofbut=0; nofbut<questions[d].answers.length; nofbut++) {
		nodisplay=0;
		if (questions[d].answers[nofbut][4] !=undefined){ nodisplay = 1}; //потом надо разобратся с нодисплей
		if (nodisplay == 0) {
		allbuttons.innerHTML += "<div onclick='checkvariant(this)'>" + questions[d].answers[nofbut][0] + "</div>"}
	};


На ум приходит только создание еще одного массива. Этого самого nodisplay[]. Но это опять же неудобно городить еще один двухмерный массив.

Последний раз редактировалось PashPP, 02.08.2012 в 16:32.
Ответить с цитированием
  #2 (permalink)  
Старый 02.08.2012, 16:56
Аватар для shkoder
Аспирант
Отправить личное сообщение для shkoder Посмотреть профиль Найти все сообщения от shkoder
 
Регистрация: 06.07.2012
Сообщений: 31

PashPP, советую взять Фленагана 5е издание для начала (можно легко и быстро найти в pdf) и прочитать первые хотя бы 100 страниц (это максимум 2 - 3 часа), что бы вы могли писать понятные для всех вопросы. А так получается что-то типа: Ребята, слушайте загадку: "Есть nodisplay (у всех сразу мысли - что это за таинственная сущность?) и его значение должно быть в функции (просто оно должно там быть) для каждого элемента массива..." - ну просто ребусы, честно. Но, скорее всего, с прочтением этих 100 страниц наибольшая часть вопросов отвалится сама по себе.
Ответить с цитированием
  #3 (permalink)  
Старый 02.08.2012, 17:02
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

shkoder,
Ну это просто значение. Если оно равно нулю, то в хтмл не выводится строчка. В моем примере это значение напрямую приравнивается к перебираемому циклом элементу массива. Вот я бы просто хотел узнать, как наикрасивейшим образом перебрать массив вне исполняющей функции и назначить каждому элементу свой nodisplay.
Хотя да, вопрос, наверно, дурацкий.
Ответить с цитированием
  #4 (permalink)  
Старый 02.08.2012, 17:18
Аватар для shkoder
Аспирант
Отправить личное сообщение для shkoder Посмотреть профиль Найти все сообщения от shkoder
 
Регистрация: 06.07.2012
Сообщений: 31

PashPP,
Напишите более обще что вам нужно.
Попробую догадаться - в свете предыдущих вопросов про то как хранить вопросы и варианты ответов, выходит, что у вас приложение - опросник. А тут вам что-то типа скрывать вопросы, на которые вы уже ответили или что?
Ответить с цитированием
  #5 (permalink)  
Старый 02.08.2012, 17:33
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

shkoder,
Текстовый квест. Так вот там должны быть скрытые варианты ответов. Которые в моем первом примере просто скрываются, если ничего нет в
questions[d].answers[nofbut][4]

То есть в четвертом элементе каждого подмасива answers.
for(nofbut=0; nofbut<questions[d].answers.length; nofbut++) {
nodisplay=0;
if (questions[d].answers[nofbut][4] !=undefined){ nodisplay = 1};
if (nodisplay == 0) {
allbuttons.innerHTML += "<div onclick='checkvariant(this)'>" + questions[d].answers[nofbut][0] + "</div>"}

Но этот показатель должен быть более гибкий и зависеть не просто от наличия в массиве questions[d].answers[nofbut][4] хоть чего-то, а и от этого содержимого и внешних факторов.
Ответить с цитированием
  #6 (permalink)  
Старый 02.08.2012, 18:02
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от PashPP
а и от этого содержимого и внешних факторов.
а сюда эти факторы нельзя внести?
if ((questions[d].answers[nofbut][4] !=undefined)&&b==2&&a==c){ nodisplay = 1};
Ответить с цитированием
  #7 (permalink)  
Старый 02.08.2012, 18:16
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

vadim5june,
Можно, но это будет не слишком гибко.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
динамическое содержимое функции alfmaster Общие вопросы Javascript 2 28.05.2011 17:10
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03