[英]Random subset of array elements in 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
的內容時,很明顯我沒有得到我期望的元素。 特別是,我永遠不會獲得原始數組中的最后三個元素。
如上所述, int()
和random()
是p5.js函數,很好。 通過刪除push()
語句中的.slice()
實例來解決此問題:
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]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.