26.01.2016, 18:50
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
laimas,
Ответ по сути задачи, похоже, в предыдущей теме этого топикстартера
Тест с множеством комбинаций...
|
|
26.01.2016, 18:54
|
Интересующийся
|
|
Регистрация: 25.02.2015
Сообщений: 27
|
|
Поясню по другому
Мне нужно сделать тест из 5 вопросов, в каждом вопросе по 3-5 вариантов ответов
Вопрос 1
Что болит:
1.Нога value = 1
2.Рука value = 2
3.Голова value = 3
4.Живот value = 4
5.Нос value = 5
Вопрос 2
Симптомы:
1.Насморк value = 1
2.Кашель value = 2
3.Температура value = 3
Теперь условие при котором будет выводится определенный текст к примеру
Если на вопрос 1 ответили 2 или 4 а на второй ответили 1 то выводим "Вы больны гриппом"
1-2,4 2-1
|
|
26.01.2016, 18:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от x1ds
|
Если сравнивать вот эти 2 то тогда true
Если к примеру изменить какой то элемент то тогда false
|
Переложив на гинекологию, получим - если двойня, папа в ступоре, если еще не определено, ожидаем.
У вас массив m2 содержит 5 элементов, и по стечению расположения звезд на небе и m1 также имеет 5 элементов. Вопрос - значит ли это, что в:
var m1 = [[1, 0, 0],[2, 3, 0],[1,2, 3],[1, 2, 5],[1, 3, 5]];
var m2 = [5,2,1,1,5];
если m2[0] есть среди значений m1[0] И m2[1] есть среди значений m1[1] И m2[2] есть среди значений m1[2] И m2[3] есть среди значений m1[3] И m2[4] есть среди значений m1[4], только в этом случае true?
Или как то иначе?
|
|
26.01.2016, 19:00
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от x1ds
|
Поясню по другому
Мне нужно сделать тест из 5 вопросов, в каждом вопросе по 3-5 вариантов ответов
|
Вот я об этом и думал, а вы о болях пишите нормально, а массивами не можете передать условий.
Тогда вопрос - это что тест (проверить самого себя) или же это проверка знаний куратором своего ученика? Если первое, то это решать на клиенте, если второе, то эту проверку нужно делать уже только на сервере.
|
|
26.01.2016, 19:05
|
Интересующийся
|
|
Регистрация: 25.02.2015
Сообщений: 27
|
|
Попробую графически пояснить что где проверять
Вот только в этом случае true
|
|
26.01.2016, 19:08
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от x1ds
|
Попробую графически пояснить что где проверять
|
Уже не надо, ибо это то, о чем я ранее спрашивал. Ответ дайте по поводу "что это", ибо тесты самого себя можно производить и на клиенте, а вот проверка кем-то знаний кого-то, это уже задача севера. Что у вас?
|
|
26.01.2016, 19:12
|
Интересующийся
|
|
Регистрация: 25.02.2015
Сообщений: 27
|
|
тесты самого себя
|
|
26.01.2016, 19:30
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
x1ds,
медитируйте
var m1 = [[1, 0, 0],[2, 3, 0],[1,2, 3],[1, 2, 5],[1, 3, 5]];
var m2 = [5,2,1,1,5];
function fn(a, b) {
return a.every(function(a, i) {
return a.some(function(a) {
return a == b[i]
})
})
};
alert(fn(m1,m2))
var m2 = [0,2,1,1,5];
alert(fn(m1,m2))
/*или так */
function foo(a, b) {
return a.every(function(a, i) {
return !!~a.indexOf(b[i])
})
};
var m2 = [5,2,1,1,5];
alert(foo(m1,m2))
var m2 = [0,2,1,1,5];
alert(foo(m1,m2))
|
|
26.01.2016, 19:38
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Ну тогда узнать есть ли вхождение (булево значение) N-го индекса массива m2 в массиве m1[N-го индекса], например так:
!!~m1[N].indexOf(m2[N])
Но вот прочел: Если на вопрос 1 ответили 2 или 4 а на второй ответили 1 то выводим "Вы больны гриппом", и заболел расстройством. Во первых не знал, что если болит рука или живот, это грипп, а во-вторых не похоже что вам нужно true/false, а важно знать номер ответа. И еще, если m2, это номер варианта, который выбрал тестирующийся, то как понять - [1, 0, 0] и ответ 5?
Последний раз редактировалось laimas, 26.01.2016 в 19:53.
|
|
26.01.2016, 20:20
|
Интересующийся
|
|
Регистрация: 25.02.2015
Сообщений: 27
|
|
Сообщение от рони
|
x1ds,
медитируйте
var m1 = [[1, 0, 0],[2, 3, 0],[1,2, 3],[1, 2, 5],[1, 3, 5]];
var m2 = [5,2,1,1,5];
function fn(a, b) {
return a.every(function(a, i) {
return a.some(function(a) {
return a == b[i]
})
})
};
alert(fn(m1,m2))
var m2 = [0,2,1,1,5];
alert(fn(m1,m2))
/*или так */
function foo(a, b) {
return a.every(function(a, i) {
return !!~a.indexOf(b[i])
})
};
var m2 = [5,2,1,1,5];
alert(foo(m1,m2))
var m2 = [0,2,1,1,5];
alert(foo(m1,m2))
|
Спасибо огромное) То что нужно !
|
|
|
|