【问题标题】:JS, Randomly select every item from a 2d arrayJS,从二维数组中随机选择每个项目
【发布时间】:2018-10-04 12:49:38
【问题描述】:

数组是 40 x 40 所以 [0 - 39][0 - 39]。

有没有一种方法可以让我遍历数组并选择每个项目而不选择项目两次但随机执行, 所以没有像 for(i = 0; i 这样的循环。 对不起,如果我的解释不好

将数组转换为一维数组

newArray = [];
for (var i = 0; i < gridsize; i ++) {
  for (var j = 0; j < gridsize; j ++) {
    newArray.push(grid[i][j])
  }
}
newArray = shuffle(newArray)

然后我会像这样遍历数组

for (var x = 0; x < newArray.length; x ++) {
  i = newArray[x].x
  j = newArray[x].y
    switch(grid[i][j].id) {

所以因为数组已经被打乱了,我可以得到一个新的随机点来搜索,还有比这更有效的方法吗?

【问题讨论】:

  • 哦,有多种方法,您能否与我们分享您的尝试,以便我们帮助调试您的代码?我敢肯定,您不会期望我们为您编写代码 :-)
  • 标准方法是为每个包含数字 0 到 39 的维度创建数组,然后 shuffle 数组。

标签: javascript sorting random


【解决方案1】:

有一个代表所有 1600 个元素的一维数组。随机排列数组How to randomize (shuffle) a JavaScript array?。使用该数组查找元素。

【讨论】:

    猜你喜欢
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多