繁体   English   中英

更改js关联数组中的键

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM