改变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;
同样,你正在使用一个数组实例,但使用它作为一个简单的对象;你所做的一切都可以用:
var myArray = {};
你在代码中尝试的"splice()"将不起作用,因为它只适用于实际的整数索引数组属性,而不是命名属性。
"delete"并没有真正删除一个属性,这并不重要。"undefined"值是当你检查一个对象的属性而没有这个属性时得到的值。
相关文章:
- 在数组JS中查找三个重复项
- 比较二维数组js
- 从数组(JS)中的对象调用函数
- 检查对象是否已被推入数组 Js
- 将CSV文件转换为JSON数组JS
- 解析多维数组JS的数组并记录索引
- 如何遍历直接传递到灰尘的数组.js
- 如何使用 D3 选择 JSON 数组.js 使用 .算子
- JavaScript 变量中的 PHP 数组 - JS 元素
- 将数据复制到 JavaScript D3 中的数组.js然后绘制散点图
- 基于数组JS中的值创建按钮
- 创建数组JS
- 按频率排序子字符串数组-JS
- 将数组js变量传递给php
- 使用不带嵌套循环的数组过滤对象数组js
- 创建封装数组JS
- 创建多dim数组(JS)
- 创建for循环对象并将它们压入数组js中
- 将数组JS中的所有项相乘
- 如何从二维数组(JS)中获取网格的坐标