Справочная информация:
Привет всем, я новичок в JavaScript и пытаюсь провести психологический эксперимент, используя инструменты библиотеки jsPsych (v7.0). Я создал большую часть того, что мне было нужно, но мне очень трудно заставить работать логику ветвления или условную фильтрацию.
В частности, мне нужно, чтобы участники согласились или не согласились на процедуры исследования. Если они не согласны, их необходимо разветвить, чтобы увидеть одно сообщение, а если они согласны, им нужно увидеть другое.
Я создал упрощенную версию для репликации (см. ниже)
Проблема
Изначально я думал, что индексирование значения, полученного в результате события согласия, будет самым простым решением, но я не могу индексировать или ссылаться на данные из предыдущего испытания. Почти каждый раз значение, которое я индексирую, отображается как [object Object], хотя, когда я экспортирую объект данных и смотрю на то, что, как мне кажется, я индексирую, значение «0», которое Я ожидаю увидеть согласие. Приведенный ниже код — моя последняя попытка, в которой я просто пытаюсь сохранить значение из последнего испытания в столбце response, используя var Accepted = jsPsych.data.get().last( 1).select('response') команда. Почему это не работает? Мой сценарий, представленный ниже, никогда не соответствует условному оператору consented == '0' и всегда выводит ветвь под else< /код>.
Я был бы открыт для других решений ветвления, помимо индексации ценности предыдущей пробной версии, если она у кого-то есть.
Эксперимент // Инициируем jsPsych вар jsPsych = initJsPsych(); // Создание пустого массива, который будет служить нашей временной шкалой вар временной шкалы = []; // | - - - - - Согласие - - - - - -| // Предоставление простого события согласия, в котором участники выбирают одну из двух кнопок (значения, соответствующие «0» и «1», слева направо) вар согласие = { тип: jsPsychHtmlButtonResponse, стимул: «Информация о согласии», варианты выбора: ['Я согласен участвовать
в этом исследовании', «Я не согласен участвовать
в этом исследовании»], render_on_canvas: ложь, данные: {задача: «Согласие»}, } // Добавляем событие согласия на временную шкалу timeline.push(согласие); // (Теоретически) сохраняем выходное значение события согласия в переменную с именем 'consented' var согласие = jsPsych.data.get().last(1).select('response') // Я использовал это как средство просмотра выходного значения согласия, чтобы проверить, сработал ли предыдущий аргумент. Это всегда выводит [object Oject], и я не знаю, неправильно ли я индексирую, или я не могу просмотреть значение индекса таким образом, или что-то в такой индексации искажает значение. // вар тест = { // введите: jsPsychHtmlKeyboardResponse, // стимул: согласился, // выбор: [' '], // данные: {задача: 'Инструкция'}, // }; // timeline.push(test); // Если участник согласен... если (согласно == '0'){ // ... затем покажем это сообщение ниже. вар instr_Consented = { тип: jsPsychHtmlKeyboardResponse, стимул: «Вы согласились!», варианты: [' '], данные: {задача: 'Инструкция'}, }; timeline.push(instr_Consented); } // ... но если человек не согласен... еще { // ... вместо этого покажем это сообщение. вар instr_Consented = { тип: jsPsychHtmlKeyboardResponse, стимул: «Вы не соглашались!», варианты: [' '], данные: {задача: 'Инструкция'}, }; timeline.push(instr_Consented); } // Выполнение временной шкалы jsPsych.run(временная шкала);
Запуск определенных функций в зависимости от последних пробных данных в JavaScript ⇐ Html
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
(РЕШЕНО) Приложение выдает ошибку при открытии из последних приложений
Anonymous » » в форуме Android - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-