Javascript从数组中选择一个随机对象集

时间:2012-08-05 01:24:41

标签: javascript arrays kineticjs

“工作”示例在这里(此脚本处理三角形动画)

http://movable.pagodabox.com/

完整代码:http://pastebin.com/rgPNxHgJ

这个问题主要是关于正确的语法。我有以下内容:

shape.transitionTo({
     offset: {
          x: 10,
          y: 10
     }
})

我想要做的是从数组中随机选择“x”和“y”,例如:

    movementIn = [
        {x: 34, y: 66},
        {x: -34, y: -66}
    ],

    shape.transitionTo({
        offset: movementIn[Math.floor(Math.random() * movementIn.length)],
    });

但这似乎不起作用......似乎每次只选择第一项。我在这里做错了吗?

如何选择随机的X和Y对并将其插入“offset”参数?

谢谢!

1 个答案:

答案 0 :(得分:1)

"Works for me"

arr = ["a","b","c"]
res = ""
for (i = 0; i < 10; i++) {
   res += arr[Math.floor(Math.random() * arr.length)]
}
alert(res)

请注意,这不是选择一个项目的“正确”方式,因为分布略有偏差。

问题中的代码中存在一些语法语义问题:

{
   although_SomeBrowsers: "accept me",
   iAmAnInvalidLiteral: "BecauseThereIsAnExtraComma",
}

我感到很痛苦,你走了:

arr = [{x:1,y:-1},{x:2,y:-2},{x:3,y:-3}]
for (i = 0; i < 10; i++) {
   AN_OBJECT = arr[Math.floor(Math.random() * arr.length)]
   // do whatever you want to do with what AN_OBJECT names
   alert("x: " + AN_OBJECT.x + " y: " + AN_OBJECT.y)
}