问题标签 [jspsych]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
103 浏览

javascript - 生成具有混合顺序的多个组合的字符串列表

我正在使用 jsPsych 为教授设置认知实验,其中刺激是大约 200 个T ∧ F ∨ T形式的逻辑语句,具有 4 种不同的间距类型。我需要找到一种方法来生成以正确顺序编写的三个真值、两个逻辑运算符和 四种间距类型的每种组合,而无需手动输入它们(希望如此)。

具体如下:

间距类型(其中 -- 表示空格):

1) T∧T∨T即没有空格 2) T∧--T∨T 3) T∧T--∨T 4) T∧--T--∨T

运营商

1) ∧ ∧ , 2) ∨ ∨ , 3) ∧ ∨ , 4) ∨ ∧

真值

T 和 F 的所有 3 组合(有 8 个)。例如TTTTTFFTFFFF等。

所以我需要遍历这三件事的所有组合,将它们组合成字符串(用 html 编写),并生成一个包含所有字符串的列表或数组(大约有 200 个)。我对 cs 很陌生,所以对这个问题的任何帮助都表示赞赏,这对我来说实在是太多了!

note感谢评论者指出我没有包括我尝试过的东西。

我一直在尝试使用 3-5 个嵌套的 for 循环。我最初设置了一个大小为 7 的数组(因为这是字符串的最长可能长度)并使用 for 循环填充数组的空间。我使用这条路线几乎完全不成功。它似乎很有希望,也许我可以让它工作,但它也很不优雅而且很长,我现在想知道是否有更直接的方法来做到这一点。同样,由于我是新手,因此可能存在我不知道的资源。

谢谢!

0 投票
0 回答
370 浏览

reactjs - jsPsych 与 React 的集成

我一直在尝试将使用jsPsych(用于运行行为实验的库)进行自定义实验,并将自定义插件放入 React 容器中,但我遇到了一些问题。

我尝试做的第一件事是使用 makebrainwave 的jspsych-react包,但是当我尝试运行示例时,在必须更改导入部分中文件的路径并替换使用“fs”之后,我仍然遇到此错误:

有人可以帮我吗?看起来它正在尝试初始化某些东西并失败了,但否则我有点迷失在错误中。

第一个错误发生在构造函数中:

以及以下函数第一行中的第二个

我安装jspsych-reactyarn项目中,测试容器如下:

有没有人在不使用 jspsych-react 包的情况下集成了类似的东西?你采取了哪种方法?

提前致谢!

0 投票
0 回答
70 浏览

javascript - 将值从预定义列表链接到数据参数的问题

我正在使用 jsPsych 库(jsPsych 6.0.5)在 javascript 中编写任务切换实验。我使用带有刺激属性的预定义列表,但我似乎无法将特定值链接到数据参数中的变量(数据的输出未定义)。

我正在使用 for 循环将这些值链接到 data 参数,但这似乎不起作用。在下面的示例中,第一个 for 循环读取预定义列表的不同列,每一行代表一个试验。在第二个 for 循环中,我尝试将每个试验(行)的这些值输入到我的 test_stimuli 的数据参数中

当我将数据参数记录到控制台时,我得到“未定义”(即使它在查看例如 cresp 数组时记录了正确的值)。

0 投票
0 回答
95 浏览

javascript - 告诉变量访问 if 语句的数组

我正在使用 jspsych/javascript 编写一个在线实验。实验由 100 个区块组成,在每个区块之后,block_number 会更新 +1。有两个条件。在 75 个块上,我希望程序显示一个图像,在 25 个块上,我希望程序显示一个字母。首先,我生成了 25 个随机数(将用作 25 个块号),字母应显示在其上。我的问题是告诉程序将这 25 个数字用作字母条件的 block_number,但将其他块编号用作图像条件的 block_number。也许我需要以不同的格式存储 25 个数字,即它们不存储为数组?同样在 if 语句中,如何将 block_number 与这 25 个数字“连接”?请在下面查看我的代码。非常感谢您的帮助,我真的很感激!

// 一开始就初始化block_number,在for循环之后更新+1:

// 总共有 100 个块,其中 25 个(一开始是随机选择的)应该显示一个字母而不是图像:

// 在 if 语句中,我只想在 block_number 等于 block_keys 时显示字母,否则应该显示图像:

0 投票
1 回答
581 浏览

javascript - 我可以创建一个循环来呈现图像并在不同页面上进行调查喜欢响应吗?

我正在尝试用几个“survey-likert”试验编写一个实验,其中使用“survey-likert”jspsych 插件在单选按钮上方显示图像。我设法让它工作,但所有图像/问题都出现在同一页面上。我希望每个都出现在新页面上。理想情况下,每个问题后都有一个“继续”按钮。

任何帮助将非常感激。西尔莎

有人建议我使用 for 循环来遍历图像,但到目前为止我所做的不起作用并产生了一些错误。我对编程和 jspsych 很陌生,并且无法弄清楚为什么它不起作用。

我希望我的 6 张图片中的每一张都将出现在一个单独的页面上,其下方有单选按钮。选择一个选项时,将出现下一个图像和响应选项集,直到显示所有6个。

这是我得到的错误:

和 jsPsych.init() 函数:

以下是我编写的代码,除了问题都出现在同一页面上之外,它可以工作:

0 投票
1 回答
165 浏览

javascript - 如何更改 JSPsych 中刺激呈现的权重?

我正在用 JSPsych 编写一个实验,其中有十个条件。我需要根据条件呈现具有不同频率的五个图像的数组。

我已经设法使用 for 循环和 randomize.sampleWithReplacement 进行某种工作,但它没有以我需要的频率呈现图像。

例如,在一种情况下,我希望图像 5 被呈现 8 次,图像 4 被呈现 6 次,依此类推。

有谁知道我如何使用插件和 JSPsych 函数来实现它?

到目前为止,这是我的代码:

它适用于第一个条件(因为这非常简单)。

这只是我在 JSPsych 中编写的第二个实验,所以我是一个新手,如果能提供任何帮助,我将不胜感激!

- - - - - - - - - 更新 - - - - - - -

我现在有这个:

我创建了一个 shuffled 数组,它规定了呈现频率,但我不确定如何合并到循环中,以便图像呈现该次数。图像标记为 1、2、3、4、5。

0 投票
1 回答
471 浏览

javascript - JSPsych - 参与者对条件的平衡分配

几个月前我开始使用 JSPsych/javascript,现在已经编写了我的第一个完整实验。我进行了一次试点,很明显我的参与者没有被平均分配到条件。

要将参与者分配给我正在使用随机化功能的条件:

我有一个 20 单元设计,分配大致平衡非常重要。

我知道 Josh de Leeuw 有一些PHP / JS 函数可以与 MySQL 数据库通信,它允许您以平衡的方式将参与者分配给条件。

这似乎有点复杂,我不确定我是否完全遵循如何去做。

有没有人找到一种以平衡的方式将参与者分配到条件的方法?

0 投票
2 回答
349 浏览

javascript - Jspsych:将 3 个 p 标签放在页面中心,与左侧对齐?

我想我很卡住。

所以这就是我现在在视觉上得到的。

在此处输入图像描述

我在 MS 油漆中添加了漫画无标题和箭头。

包含色样的每一行都是一个p标签。理想情况下,我希望将这些p标签放在页面的中心(这是它们在jspsych中的默认位置)。但是,我也希望所有这些标签都向左对齐。我仍然希望p标签在中心,但我想让每行文本从相同的x坐标开始。

在此处输入图像描述

上面的屏幕截图是我理想中想要的。事物居中,但这些样本/p 标签仍然从基本相同的 x 坐标开始。

因此,我目前正在调试的页面(第一个屏幕截图)的代码如下。请注意,加载的一个图像的路径为/static/images/test.png,您可以将其替换为您想要的任何内容。javascript文件被调用debugjspsych.js,html是debug.html

Javascript:

我要包含的最后一个代码片段是理想化屏幕截图的代码。

我在上面的代码片段中省略了很多部分,只是因为我觉得它们不相关。这里真正重要的是,我能够使用margin: auto 0;该试验对象获得我想要的行为。但我似乎无法在示例中做到这一点。

0 投票
1 回答
315 浏览

javascript - 如果参与者提供 n 个正确答案,则跳过其余时间线 (jspsych)

我在时间线上有 n 次决策试验。正确答案被记录为数据属性。如果参与者提供了固定数量的正确答案,我想跳过时间线的其余部分。这需要一个条件,但我的不起作用。

下面的可重现代码(需要 jspsych-6)。

0 投票
0 回答
179 浏览

javascript - jsPsych随机化函数循环重复最终试验

我正在使用 for 循环创建测试试验,其中每个测试项目出现一次,但最终项目总是出现两次。循环旨在以随机顺序显示每个 rocksize 一次。我尝试了各种随机化功能(shuffle、shuffleNoRepeats、sampleWithoutReplacement、repeat),但没有一个能完成这项工作。我继承了这段代码并正在对其进行调整,而不是自己编写整个代码。我还注意到数据参数不记录所呈现项目的实际大小,而是按升序记录它们。

也许循环存在问题,但我无法确定问题所在,所以如果有人能看看他们是否能发现问题所在,我将不胜感激。

这是我的代码:

我怎样才能阻止它重复最终审判?