簡體   English   中英

JS中數組元素的隨機子集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM