JS中数组元素的随机子集

时间:2018-03-07 02:47:34

标签: javascript arrays p5.js

我试图从数组中选择一组随机的三个独特元素。我对JS很新,而且我经常绊倒意外的参考行为(Python是我最好的语言)。我认为这也发生在这里。这是P5.JS。

这是我的尝试:

var points = [[0,0],[.5*w,0],[w,0],
[0,.5*h],[.5*w,.5*h],[w,.5*h],
[0,h],[.5*w,h],[w,h]];

var vert = [];
var start = int(random(0,8));
vert.push(points[start].slice());
points.splice(start,1);

var middle = int(random(0,7));
vert.push(points[middle].slice());
points.splice(middle,1);

var end = int(random(0,6));
vert.push(points[end].slice());

当我查看vert的内容时,我很清楚我没有得到我期望的元素。特别是,我从来没有得到原始数组中最后三个元素中的任何一个。

1 个答案:

答案 0 :(得分:1)

如上所述,int()random()是p5.js函数,很好。通过删除.slice()语句中的push()个实例来修复此问题:

var vert = [];

var start = int(random(0,8));
vert.push(points[start]);
points.splice(start,1);

var middle = int(random(0,7));
vert.push(points[middle]);
points.splice(middle,1);

var end = int(random(0,6));
vert.push(points[end]);