随机从数组中选择对象

时间:2015-08-30 06:05:24

标签: javascript html arrays

我正在尝试制作一个函数或if条件,每秒随机选择一个三个圆圈。

上下文是我要制作动画,圆圈应该从右侧画布高度/ 2到左侧。每一秒都应该在画布上绘制一个新的圆圈,但是在新的圆圈之前绘制的其他圆圈不应该被删除。我怎么能做到这一点?

var circle1={color: blue};
var circle2={color: yellow};
var circle3={color: orange};

var circles=[];
circles.push(circle1);
circles.push(circle2);
circles.push(circle3);

function drawCircle(circle){
      ctx.beginPath();
      ctx.arc(ballx * 108, canvasHeight / 2, x*5, 0, 2*Math.PI, false);
      ctx.fillStyle = 'circle.color';
      ctx.fill();

  }

1 个答案:

答案 0 :(得分:3)

此函数从数组中返回一个随机元素:

function getRandomElement(array) {
  if (array.length == 0) {
    return undefined;
  }
  return array[Math.floor(Math.random() * array.length)];
}

要查看它的实际效果,请运行以下代码段:



function getRandomElement(array) {
  if (array.length == 0) {
    return undefined;
  }
  return array[Math.floor(Math.random() * array.length)];
}

var circles = [
  {color: 'yellow'},
  {color: 'orange'},
  {color: 'red'},
  {color: 'pink'},
  {color: 'blue'},
  {color: 'green'},
  {color: 'purple'},
  {color: 'brown'}
];

document.write('random circle: ' + JSON.stringify(getRandomElement(circles)));