javascript - 从数组中随机选取元素而不重复

标签 javascript phaser-framework

我在各个 Sprite 上显示随机数,并希望对各个容器进行洗牌,使其上不显示相同的数字。如何随机打乱一组 Sprite 而不重复相同的颜色?

我的数组是:

   var color = new Array();
   color[0] = 'greenBox';
   color[1] = 'blueBox';
   color[2] = 'purpleBox';
   color[3] = 'yellowBox';
   color[4] = 'redBox';
   color[5] = 'whiteBox';
   color[6] = 'pinkBox';

最佳答案

如果以后不需要该数组,可以这样做:

var color = [
    "greenBox",
    "blueBox",
    ...
];

while (color.length != 0) {
    var index = Math.floor(Math.random()*color.length);
    var pickedColor = color[index];
    colors.splice(index, 1);  // This removes the picked element from the array
    doStuffWith(pickedColor);
}

这会破坏数组,但它永远不会选择相同的元素两次

关于javascript - 从数组中随机选取元素而不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473095/

相关文章:

javascript - 使用街机物理功能时,斜坡在 Phaser 中不起作用

javascript - Phaser 游戏 d​​estroy() 不起作用

javascript - 如何使用phaser框架在html5中实现设备定向

javascript - 在javascript中创建一个 "Dictionary"

javascript - 如何从 View (cshtml 文件)调用 JS 函数以转到 Bootstrap 轮播控件中的特定幻灯片?

javascript - Jquery Hover - 允许悬停在另一个 DIV 上出现在悬停按钮上

javascript - 如何从 kendo UI 操作表中获取所选项目?

javascript - 深色主题切换按钮的可缩放大小

javascript - 从 JSON 文件加载 Phaser Assets 的问题

javascript - 开 Jest 导入语句 : 'TypeError: Cannot set property ' fillStyle' of null'