[英]Change key in js associative array
如果我有:
var myArray = new Array();
myArray['hello'] = value;
如何将密钥“hello”更改为其他内容?
像这样的东西会起作用。
var from = 'hello',
to = 'world',
i, value = myArray[from];
for( i in myArray )
if( i == from ) myArray.splice( i, 1 );
myArray[to] = value;
但是有没有本地功能或更好的方法呢?
编辑:
由于js中缺少关联数组,我想要做的是尽可能有效地修改对象的属性名称。
在JavaScript中没有关联数组这样的东西。 可以使用对象:
var myHash = new Object();
要么
var myHash = {};
替换可以这样做:
myHash["from"] = "value";
myHash["to"] = myHash["from"];
delete myHash["from"];
但是写它的首选方式:
myHash.from = "value";
myHash.to = myHash.from;
delete myHash.from;
您无法真正“更改”属性名称,但始终可以将属性值分配给新名称,然后删除原始名称。
myArray['world'] = myArray.hello;
delete myArray.hello;
此外,您正在使用Array实例,但将其用作简单对象; 你正在做的每件事都可以与以下方面一起工作:
var myArray = {};
您在发布的代码中尝试的“splice()”将不起作用,因为它仅适用于实际的整数索引数组属性,而不是命名属性。
那个“删除”并没有真正删除属性真的没关系。 “未定义”值是您检查属性的对象时所获得的值,并且没有此属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.