【发布时间】:2009-09-06 15:04:10
【问题描述】:
给定
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 中的错误吗?还是我在删除时做错了什么?
谢谢
【问题讨论】:
-
您正在做的是向对象添加属性,这与向数组/哈希添加元素不同。您正在寻找一种或多或少删除属性的方法。尝试删除 myHash.key1,如其他 cmets 所述。
-
如果是哈希表,你应该使用
var myHash = new Object()而不是var myHash = new Array()。
标签: javascript arrays