And*_*ock 74 javascript arrays
特定
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key2'] = { Name: 'Object 2' };
myHash['key3'] = { Name: 'Object 3' };
Run Code Online (Sandbox Code Playgroud)
我如何从哈希中删除key2
,object 2
以便它最终处于一个状态,就像我做的那样:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myHash['key3'] = { Name: 'Object 3' };
Run Code Online (Sandbox Code Playgroud)
删除不是我想要的;
delete myHash['key2']
Run Code Online (Sandbox Code Playgroud)
只是给我这个:
var myHash = new Array();
myHash['key1'] = { Name: 'Object 1' };
myhash['key2'] = null;
myHash['key3'] = { Name: 'Object 3' };
Run Code Online (Sandbox Code Playgroud)
我可以找到的唯一文档splice
和slice
处理整数索引器,我没有.
编辑:我也不知道'key2'必然在位[1]
UPDATE
确定轻微的红鲱鱼,删除确实似乎做了我想要的表面,但是,我正在使用json2.js将我的对象字符串化为json以推回服务器,
在我删除之后,myHash被序列化为:
[ { Name: 'Object 1' }, null, { Name: 'Object 3' } ]
Run Code Online (Sandbox Code Playgroud)
这是json2.js中的错误吗?或者是删除时我做错了什么?
谢谢
kar*_*m79 175
您正在寻找delete
:
delete myhash['key2']
Run Code Online (Sandbox Code Playgroud)
Eld*_*rov 11
你为什么用new Array();
哈希?你需要new Object()
改用.
我想你会得到你想要的东西.
你说你不一定知道'key2'在位置[1].嗯,事实并非如此.位置1将由myHash [1]占用.
你滥用JavaScript数组,它(如函数)允许键/值哈希.即使JavaScript允许它,它也不会为你提供处理它的工具,因为为关联数组设计的语言会.JavaScript的数组方法仅适用于编号属性.
你应该做的第一件事是切换到对象而不是数组.你没有充分的理由在这里使用数组而不是对象,所以不要这样做.如果你想使用数组,只需对元素进行编号并放弃哈希的想法.数组的意图是保存可以在数字上索引的信息.
当然,如果您愿意,可以将哈希(对象)放入数组中.
myhash[1]={"key1","brightOrangeMonkey"};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
97485 次 |
最近记录: |