[英]How to replace the javascript object property name dynamically
我創建了一個JavaScript對象,例如
var obj={}
var prop = {}
prop.name= "name",
prop.value = "10"
obj[old_name] = prop;
我需要將old_name
更改為new_name
。 我試過了
obj[new_name] = obj[old_name];
delete obj[old_name];
它有效,但是對象順序已更改。
例如:
{"obj1":{"name:name","value:10"},"obj2":{"name:name","value:10"}}
如果我用objone
替換obj1
,像這樣:
obj[objone ] = obj[obj1];
delete obj[obj1 ];
對象順序更改為:
{"obj2":{"name:name","value:10"},"objone":{"name:name","value:10"}}]
但是我需要單獨更改屬性名稱而不是順序,並且我也嘗試替換字符串,但是我認為這不是正確的方法,因此請提出一些建議。
對象沒有順序。 您看到的任何明顯的順序都是未指定的行為,您不能依靠它。 他們不是在問問題時提出的,但是現在他們做了 :
- 讓鍵成為一個新的空列表。
- 對於O的每個自己的屬性鍵P (它是整數索引),以數字索引的升序排列
- 將P添加為key的最后一個元素。
- 對於每個自己的屬性鍵P of O (按字符串創建,但不是整數索引),按屬性創建順序
- 將P添加為key的最后一個元素。
- 對於每個自己的符號O的屬性鍵P (按屬性創建順序)
- 將P添加為key的最后一個元素。
- 返回鍵 。
重命名屬性的方法是唯一的方法:創建一個新屬性,然后刪除舊屬性。 這樣做將改變它在對象順序中的顯示位置,因為它是在上一個屬性之后創建的。
如果需要訂購,請使用數組。 雖然理論上數組也不是有序的(因為它們不是真正的數組 ),但我們有一個約定,即它們有序,這取決於條目索引的數值:索引0
處的條目位於處的條目之前索引1
,依此類推。 (並且現代JavaScript引擎可以並且確實在可能的情況下使用實數組。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.