我试图从数组中选择一组随机的三个独特元素。我对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
的内容时,我很清楚我没有得到我期望的元素。特别是,我从来没有得到原始数组中最后三个元素中的任何一个。
答案 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]);