簡體   English   中英

如何動態替換javascript對象屬性名稱

[英]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"}}]

但是我需要單獨更改屬性名稱而不是順序,並且我也嘗試替換字符串,但是我認為這不是正確的方法,因此請提出一些建議。

對象沒有順序。 您看到的任何明顯的順序都是未指定的行為,您不能依靠它。 他們不是在問問題時提出的,但是現在他們做了

  1. 成為一個新的空列表。
  2. 對於O的每個自己的屬性鍵P (它是整數索引),以數字索引的升序排列
    • P添加為key的最后一個元素。
  3. 對於每個自己的屬性鍵P of O (按字符串創建,但不是整數索引),按屬性創建順序
    • P添加為key的最后一個元素。
  4. 對於每個自己的符號O的屬性鍵P (按屬性創建順序)
    • P添加為key的最后一個元素。
  5. 返回

重命名屬性的方法是唯一的方法:創建一個新屬性,然后刪除舊屬性。 這樣做將改變它在對象順序中的顯示位置,因為它是在上一個屬性之后創建的。

如果需要訂購,請使用數組。 雖然理論上數組也不是有序的(因為它們不是真正的數組 ),但我們有一個約定,即它們有序,這取決於條目索引的數值:索引0處的條目位於處的條目之前索引1 ,依此類推。 (並且現代JavaScript引擎可以並且確實在可能的情況下使用實數組。)

暫無
暫無

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

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