javascript - 将值随机插入到 Javascript 数组中

标签 javascript multidimensional-array

我使用 8x8 矩阵为游戏创建了一个表格,并且还在随机位置放入了表格奖品等,但我在为用户创建不与对象冲突的随机开始位置时遇到问题已经在表中了。

现在我有:

function startPos(matrix) {
  var x = Math.round(Math.random() * matrix.length);
  var y = Math.round(Math.random() * matrix.length);

  while (matrix[y][x] != undefined) {
    var x = Math.round(Math.random() * matrix.length);
    var y = Math.round(Math.random() * matrix.length);
    return matrix[y][x];
  };


  return matrix[y][x];
};

但我什么也没得到。抱歉,如果这个问题看起来微不足道,我刚刚开始使用 JavaScript,并到处寻找相关答案,但没有成功。

最佳答案

一些错误:

  • 您不得从循环内返回,但必须检查条件才能离开
  • 您需要使用Math.floor而不是Math.round
  • 您需要返回位置,而不是字段的值(您刚刚断言该字段为未定义)

function startPos(matrix) {
  var l = matrix.length; // assumes square matrix
  do { // assumes at least one empty field
    var x = Math.floor(Math.random() * l);
    var y = Math.floor(Math.random() * l);
  } while (matrix[y][x] != undefined);
  return [y, x];
}

关于javascript - 将值随机插入到 Javascript 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42914706/

相关文章:

php - 在WordPress的用户元数组中按键删除值

multidimensional-array - 在Fortran 90中使用2d数组与派生类型的数组

java - 从文本文件填充多维数组

javascript - 对于网站 : How do I make an image follow the mouse pointer only in a certain area?

javascript - 在羽毛笔编辑器中更改标签?

javascript - 使用循环分配函数参数

javascript - 检查计数数据表是否为空

javascript - reslover 函数不适用于 Node.js 中的 Promise 对象

java - java中的bin二维数组

c++ - 如何在 header 中声明后初始化二维字符数组