如何解决从Javascript变量中删除随机HTML图像
我是Java语言的新手,所以对使用错误的术语表示歉意。 我有一个需要显示一些HTML图像的代码,这些图像存储为在特定位置(由类定义)中包含多个项目的变量,例如:
var fruit = ["<img class='item1' src='" + Banana + "'>" +
"<img class='item2' src='" + Apple + "'>" +
"<img class='item3' src='" + Grapes + "'>" +
"<img class='item4' src='" + Banana + "'>" +
"<img class='item5' src='" + Grapes + "'>" +
"<img class='item6' src='" + Pear + "'>"],
稍后,我需要在称为刺激的更大图片中使用所有这些项目,例如:
stimulus: "<div class='container'> <img class='background' src='" + Background + "'>" + fruit + "</div>",
但是,我只需要显示水果中列出的6个中的3个随机水果。 例如,我需要得到类似的东西:
stimulus: "<div class='container'> <img class='background' src='" + Background + "'>" + half_fruit + "</div>",
其中:
var half_fruit = ["<img class='item1' src='" + Banana + "'>" + "<img class='item3' src='" + Grapes + "'>" + "<img class='item6' src='" + Pear + "'>"],
即使我的图像从技术上讲不是数组的项目,有什么办法可以做到这一点? 我有特定的水果组合(不仅是示例中的一种,总共大约有30种),我需要删除该特定组合中的3种商品,同时还要使其他商品保持与以前相同的位置。这就是为什么我不将图像作为字符串存储在数组中的原因。 这些变量定义为var Banana = gorilla.stimuliURL('Banana.png');等(大猩猩是用于创建实验的平台; stimuliURL函数从在线存储库调用图像地址)。 谢谢您的时间!
解决方法
感谢您的评论,我对变量进行了如下重新排列。首先,我为每个图像创建变量以从大猩猩访问它们的地址,例如
var banana_img = gorilla.stimuliURL('banana.png');
然后,我为每个位置的每个水果创建了变量:
var banana = ["<img class='item1' src='" + banana_img + "'>","<img class='item2' src='" + banana_img+ "'>","<img class='item3' src='" + banana_img+ "'>","<img class='item4' src='" + banana_img + "'>","<img class='item5' src='" + banana_img + "'>","<img class='item6' src='" + banana_img + "'>"];
然后,我将每个水果组合另存为变量,例如
var fruit = [banana[0],apple[1],grapes[2],banana[3],grapes[4],pear[5]]
最后,我对它进行了排序并选择了前3个,只得到了三个随机项:
half_fruit = fruit.sort( function() { return 0.5 - Math.random() } ).slice(0,3).join(" ");
如果您找到更好的方法,请在下面回答或评论!