考虑到
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key2'] = { Name: 'Object 2' };
myHash['key3'] = { Name: 'Object 3' };
我该如何从哈希表中移除 key2
和 object 2
,使其最终的状态就像我执行了以下操作:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key3'] = { Name: 'Object 3' };
删除操作不能实现我想要的功能;
delete myHash['key2']
只是简单地给了我这个:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myhash['key2'] = null;
myHash['key3'] = { Name: 'Object 3' };
我能找到的有关 splice
和 slice
的唯一文档都涉及整数索引器,而我没有这种情况。
编辑:我也不知道 'key2' 是否一定在 [1] 位置。
更新
好吧,稍微转移了注意力,似乎删除确实可以做到我想要的事情,然而我正在使用 json2.js 将我的对象转换为 JSON 并将其推送回服务器,
删除后,myHash 会被序列化为:
[ { Name: 'Object 1' }, null, { Name: 'Object 3' } ]
这是在json2.js中的一个错误吗?还是我在使用delete时出了什么问题?
谢谢
var myHash = new Object()
而不是var myHash = new Array()
。 - cprcrack