[英]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.