簡體   English   中英

如何在Javascript中創建具有隨機x和y坐標的對象列表?

[英]How to create a list of objects with random x and y co-ordinates in Javascript?

 listOfObjects = listOfObjects.concat(Array(10000000).fill({l: 50, b: 50, color: "#000000"}).map((s) => { sx = Math.floor(Math.random() * (mapSquareSize)); sy = Math.floor(Math.random() * (mapSquareSize)); return s; })); 

listOfObjects數組應具有具有x,y,l,b和color屬性的對象。 我已經使用Array fill()函數設置了l,b和color變量。 我希望x和y坐標對於ListOfObjects中的每個對象都是唯一的。 但是,上面的代碼只是給每個對象相同的隨機x和y坐標。

我為此使用了for循環,但是一個朋友告訴我,這樣的解決方案會更有效。

 // for (var i = 1 ; i <= 10000000 ; i++) // { // var rock = new Object(); // rock.x = Math.floor(Math.random() * (mapSquareSize)) + 0 ; // rock.y = Math.floor(Math.random() * (mapSquareSize)) + 0 ; // rock.l = 50 ; // rock.b = 50 ; // rock.color = "#000000"; // listOfObjects.push(rock); // } 

Array.from

 const result = Array.from({ length: 10000000 }, () => ({
   x: Math.floor(Math.random() * (mapSquareSize)),
   y: Math.floor(Math.random() * (mapSquareSize)),  
   l: 50,
   b: 50,
   color: "#000000",
}));

這將按預期工作,並在每次迭代期間創建一個新對象。 它的功能與for循環完全相同,只是更加優雅(IMO)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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