我有一個多維對象是這樣的:重命名JavaScript對象鍵
var elements = {
front: {
"1": {
"backgroundImage": "url(images/elements/pig.png)",
},
"2": {
"backgroundImage": "url(images/elements/star.png)",
},
"3": {
"backgroundImage": "url(images/elements/fish.png)",
}
},
top: {},
left: {},
right: {}
};
,我需要切換兩個元素在這個對象,所以我做的:
var temp = elements[front][2];
elements[front][2] = elements[front][3];
elements[front][3] = temp;
這給了我(開關魚明星 - 但只有屬性不是對象鍵):
var elements = {
front: {
"1": {
"backgroundImage": "url(images/elements/pig.png)",
},
"2": {
"backgroundImage": "url(images/elements/fish.png)",
},
"3": {
"backgroundImage": "url(images/elements/star.png)",
}
},
top: {},
left: {},
right: {}
};
我怎麼也重新命名對象鍵?
期望的結果:
var elements = {
front: {
"1": {
"backgroundImage": "url(images/elements/pig.png)",
},
"3": {
"backgroundImage": "url(images/elements/fish.png)",
},
"2": {
"backgroundImage": "url(images/elements/star.png)",
}
},
top: {},
left: {},
right: {}
};
期望的結果是一樣的原始對象。屬性沒有排序。如果您希望圖像按特定順序排列,則必須使用數組。 –
@FelixKling我知道他們沒有訂單,但我稍後在一個循環中使用這個對象來呈現html中的背景圖像 - 並且這些屬性會一個接一個地呈現,並且僞造的訂單對我很重要。 – easwee
所以,你正在使用'for ... in'循環遍歷屬性?它們的迭代次序因瀏覽器而異。你想做什麼在技術上是不可能的。 –