Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript的随机图像数组_Javascript - Fatal编程技术网

Javascript的随机图像数组

Javascript的随机图像数组,javascript,Javascript,我对Javascript和一般的编码都是新手。我一直在尝试创建一个包含图像数组的代码。然后,单击按钮时,它将生成一个与数组链接的数字,然后显示图像。此外,我希望它在用完之前不要再使用该数字/图像 现在我只是从一个数组开始,随机生成一个数字并显示图像。我浏览了这个论坛,发了几篇帖子,尝试了很多代码。这是我离工作最近的一次了 var imagesArray = [ "1.jpg", "2.jpg", "3.png", "4.png", "5.png", "6.jpg", "7.jpg

我对Javascript和一般的编码都是新手。我一直在尝试创建一个包含图像数组的代码。然后,单击按钮时,它将生成一个与数组链接的数字,然后显示图像。此外,我希望它在用完之前不要再使用该数字/图像

现在我只是从一个数组开始,随机生成一个数字并显示图像。我浏览了这个论坛,发了几篇帖子,尝试了很多代码。这是我离工作最近的一次了

var imagesArray = [
    "1.jpg", "2.jpg", "3.png", "4.png",
    "5.png", "6.jpg", "7.jpg", "8.png"
];

function displayImage() {
    var rand = imagesArray[Math.floor(Math.random() * 8)
    document.canvas.src = imagesArray[rand];
}
使用这段代码,我得到了一个“意外令牌:文档”错误。我甚至不知道其他部件是否工作,它们只是没有出错


我哪里出错了?

此代码满足循环唯一性的要求

var imagesArray = [...]; // initial array
var imagesArrayTemp = imagesArray.slice(0); // clone of initial array

function displayImage() {
  var index = Math.floor(Math.random() * imagesArrayTemp.length);
  document.canvas.src = imagesArrayTemp[index];

  imagesArrayTemp.splice(index, 1); // remove just displayed item

  if(!imagesArrayTemp.length) {
    console.log('All images have been displayed');
    imagesArrayTemp = imagesArray.slice(0); // clone again, let's do a cycle
  }
}

只需用四个空格缩进以设置代码格式或突出显示,然后使用
{}
按钮。如果您有一个不匹配的
[
,任何合适的IDE都应该为您突出显示错误。我的缩进法不起作用。它一直将我放在标记部分。@nit我正在使用记事本++和Unity。如果我将8之后的)改为a]Unity然后说它希望a)而不是a]随机选择数组元素而不重复,洗牌数组,然后按顺序访问它们。我仍然收到数学、文档和控制台的“未知标识符”错误。我怎样才能解决这个问题?我复制并粘贴了你的代码,删除了注释并更改了。。。在我的图片中(所以“1.jpg”、“2.jpg”等)@Zoroark看起来像是环境问题。
文档
对象是HTML文档的根节点,当然它不能是“未知的”(对于
数学
控制台
对象也是如此)。尝试直接在浏览器中运行此代码。或者(最好的选择)试着用或任何东西做一个演示。@Dhilit我发现了这个问题,但我不懂修复它的代码。我用JS编码,但使用Unity作为引擎。因此,数学、文档和控制台不是实际的定义。我已经对Math(Mathf)进行了排序,但不知道后两种方法。@Zoroak如果你有战斗数学对象,那么扔掉
console.log
call,找到如何在你的环境中显示图像的正确方法,而不是
document.canvas.src
assignment。我相信这部分问题是出于javascript的责任,这是Unity的东西。我也会更新最初的帖子。。。