我有一組固定或隨機的距離值,乘以地圖的比例,mapScale. 可以使用函式生成隨機值randomNum(num1, num2)。
我希望distance使用預先確定的distances陣列索引位置為回圈中的每次迭代分配一個新值。回圈內每次迭代的陣列索引位置值應保持相同(例如:6),但distance如果陣列元素是指定索引位置的亂數,則每次迭代的值應更改。
請注意,如果指定了“隨機化”索引位置,我確實想為每次迭代獲得一個新的亂數(例如:6.22、7.08、9.45 等),而不僅僅是一個預先確定的常數(例如:7.84 )。
以下代碼有效,但randomNum每次迭代呼叫可能不是最優的,特別是因為我們已經知道要檢索的元素的索引位置。另請注意,迭代次數 ,n從大約 500 到大約 10,000 不等。
var indexPosition = findIndexPosition(...)
for (let i = 0; i <= n; i ){
var distances = [
mapscale * 0.25,
mapscale * 0.75,
mapscale * 1,
mapscale * 1.5,
mapscale * 2,
mapscale * randomNum(3, 5),
mapscale * randomNum(6, 10),
mapscale * randomNum(15, 50),
mapscale * randomNum(100, 500),
mapscale * randomNum(1000, 2500),
];
var distance = distances[indexPosition]
[...]
}
我想找到最優雅的解決方案(最佳速度/線路平衡數量)來實作所需的行為。我愿意使用switch陳述句 a function,object等,只要代碼保持簡潔并且性能得到優化。
uj5u.com熱心網友回復:
這個怎么樣:
var indexPosition = findIndexPosition(...)
const distances = [
() => mapscale * 0.25,
...
() => mapscale * randomNum(1000, 2500)
];
for (let i = 0; i <= n; i ){
var distance = distances[indexPosition]()
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/418447.html
標籤:
