我正在使用 for 循环创建测试试验,其中每个测试项目出现一次,但最终项目总是出现两次。循环旨在以随机顺序显示每个 rocksize 一次。我尝试了各种随机化功能(shuffle、shuffleNoRepeats、sampleWithoutReplacement、repeat),但没有一个能完成这项工作。我继承了这段代码并正在对其进行调整,而不是自己编写整个代码。我还注意到数据参数不记录所呈现项目的实际大小,而是按升序记录它们。
也许循环存在问题,但我无法确定问题所在,所以如果有人能看看他们是否能发现问题所在,我将不胜感激。
这是我的代码:
var rocksize = [24, 34, 43, 53, 62, 71, 90];
var rateqorder = jsPsych.randomization.repeat([0, 1, 2, 3, 4, 5, 6], 1);
// var rateqorder = jsPsych.randomization.shuffleNoRepeats([0, 1, 2, 3, 4, 5, 6]); // A few different things I've tried
console.log(rocksize)
console.log(rateqorder)
for (var i = 0; i < rateqorder.length; i++) {
var rate = {
type: "html-button-response",
timing_post_trial: 500,
stimulus:
'<div class="ratecontainer">' +
'<div class="head"></div>' +
'<div class="head"></div>' +
'<div class="head"></div>' +
'<div class="mid"></div>' +
'<div class="center">' +
'<div class="raterock">' +
'<span class="ratedot" style="height:' + rocksize[rateqorder[i]] + 'px; width:' + rocksize[rateqorder[i]] + 'px;"></span>' +
'</div></div>' +
'<div class="mid"></div>' +
'<div class="foot"></div>' +
'<div class="foot"></div>' +
'<div class="foot"></div>' +
'</div>' +
'<span><p>Based on what you have learned so far, how likely is it that a Sodor sphere of this size has plaxium coating?<br><br><br></p></span>',
choices: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"],
prompt: "<span style='font-size:15px'>[Very Unlikely]" + " " +
"[Very Likely]</span>",
data: {
trial: rateqorder[i],
rocksize: rocksize[i]
}
}
timeline.push(rate)
var wait = {
type: "html-keyboard-response",
stimulus: " ",
choices: jsPsych.NO_KEYS,
trial_duration: 1000,
}
timeline.push(wait)
}
timeline.push(rate)
我怎样才能阻止它重复最终审判?