【问题标题】:Pick random elements from an array without repeating从数组中选择随机元素而不重复
【发布时间】:2015-04-12 22:19:52
【问题描述】:

我在单个精灵上显示随机数,并希望在单个容器上随机显示相同的不显示。如何随机打乱一组精灵而不重复相同的颜色?

我的数组是:

   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';

【问题讨论】:

    标签: javascript phaser-framework


    【解决方案1】:

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

    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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-21
      • 2012-01-23
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      相关资源
      最近更新 更多