繁体   English   中英

ES6的方法来创建一个具有随机数的数组的数组?

[英]es6 way to create an array of arrays with random numbers?

尝试创建值为1或0的数组的数组。但是每个数组都具有[0,0,0,0,0,0]或[1,1,1,1,1,1],因为fill不是回调。 我需要像[0、1、0、0、1]这样的随机变量。创建值0或1的数组数组的es6方法是什么?

const createBoard = function({width, height}) {


  const board = Array(height).fill([])
  .map(row => row.concat( Array(width).fill( Math.round(Math.random()) ) ))


 return board
}

createboard({width: 5, height: 10})

我可以使用for循环来做到这一点,但我希望它更具声明性。

const createBoard = function({width, height}) {
  let board = []
  for(let row = 0; row < height; row++) {
    board.push([])
    for(let cell = 0; cell < width; cell++) {
      board[row].push(Math.round(Math.random()))
    }
  }

  return board

}

您可以使用Array#from创建外部和内部数组。 由于Array#from需要带有length属性的对象,因此您可以提供heightwidth作为长度,并使用回调函数生成数组所需的任何值。

 const createBoard = ({width, height}) => Array.from({ length: height }, () => Array.from({ length: width }, () => Math.floor(Math.random() * 2) ) ); const board = createBoard({width: 5, height: 10}); console.log(JSON.stringify(board)); 

进行少量更改即可继续执行您的逻辑,这应该可行

x = Array(5).fill([]).map(x => (Math.random(0,1) < 0.5) ? 0 : 1 )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM