我在 JavaScript 代碼中存盤了一些帶有屬性的碰撞方塊。最簡單的方法似乎是使用陣列作為索引的物件。我的代碼應該是這樣的:
// left, top, width, height
const array = [0, 0, 8, 16];
var rectangles = {};
rectangles[array] = {foo: bar};
想確保這是一種有效且可靠的方法。我記得人們說 JS 中的物件總是按字串索引,這可能不會相應地轉換。因此,使用字串 ( const s = array[0] " " array[1] " " array[2] " " array[3])似乎更安全,但我希望這樣做可以讓我通過指定它們的陣列來提取條目,這樣我就不需要自己的字串分隔符函式來匹配值。
// Obviously I'd use a more complex function to get the values I need
const this_rectangle = rectangles[[0, 0, 8, 16]];
uj5u.com熱心網友回復:
你如何使用 Wea??kMap :D
// left, top, width, height
const array = [0, 0, 8, 16];
var rectangles=new WeakMap(); //declaration
rectangles.set(array,{foo:"bar"}); //setting
//example
console.log( rectangles.get(array) ); //getting
uj5u.com熱心網友回復:
物件確實是由字串專門索引的。考慮到這一點,找到了一個方便的解決方案:
const array = [0, 0, 8, 16].toString();
rectangles[array] = {foo: "bar"};
并在迭代矩形時將位置提取回陣列:
for(let pos in rectangle) {
const data = rectangle[pos];
const poses = pos.split(",");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/347634.html
標籤:javascript
上一篇:無法使用默認值讀取未定義的屬性
下一篇:使用貓鼬更新嵌套陣列內的物件
