动态创建和删除JavaScript关联数组键和值
我正在使用jQuery1.6 我不太擅长JavaScript,我需要动态创建一个包含两个动态参数的数组:动态创建和删除JavaScript关联数组键和值,javascript,jquery,arrays,associative-array,Javascript,Jquery,Arrays,Associative Array,我正在使用jQuery1.6 我不太擅长JavaScript,我需要动态创建一个包含两个动态参数的数组:json.id和json.name 阵列创建应导致: [ [json.id] [ json.name, json.name, json.name, etc ..... ] [json.id] [ json.
json.id
和json.name
阵列创建应导致:
[
[json.id]
[
json.name,
json.name,
json.name,
etc .....
]
[json.id]
[
json.name,
json.name,
json.name,
etc ....
]
etc ...
]
然后我需要能够删除json.id
或json.id json.name
有没有人可以告诉我如何在所有浏览器的支持下做到这一点
thx
[已编辑]
逻辑是:(希望清楚:p)
注意,此示例假设您使用json对象而不是数组,因此删除子对象或属性更容易、更快…用于创建此数组的数据来自何处?数据来自json ajax结果,对于每个ajax请求,我有许多不同的json.id,然后,对于每个json.id,都有一个新的ajax调用,它检索与该json.id相关的许多不同的json.name。对不起,在您的编辑中,您提到了真实的数据吗?我看到的只是一个数据模式,很难理解您试图解析什么…请为两个ajax响应键入一个典型的数据行(带有一些实属性和实值)…响应应该是这样的:“result”:{“id0”:{“name”:“a”},“id1”:{“name”:“B”},…}无法理解这个var myJson={id39':{“name”:“Jesus”,“age”:33};我没有需要创建的静态参数:)因此请写下一个简单的json数据示例,您可以检索您发布的示例:)仅此变量myJson={'id39':{'name':'Jesus','age':33};对我来说不能是静态的。。。我需要以友好的方式创建,然后我们开始:)是的,但我不确定是否理解,请精确地获取一段您检索到的真实数据,然后我们可以看到如何动态构建您想要的阵列;)
//first ajax call result:
[{json.id_parent:json.name,json.id_parent:json.name,json.id_parent:json.name, etc..}]
//second ajax call results passing the json.id_parent:
[{json.id_parent_child:json.name,json.id_parent_child:json.name,json.id_parent_child:json.name,etc...}]
//now for each call = id_parent create an associative array:
{
id_parent:{id_parent_child,id_parent_child,etc ....},
id_parent:{id_parent_child,id_parent_child,etc ....},
etc...
}
var myJson = {'id39':{'name':'Jesus','age':33}};
var idDel = 'id39';
delete myJson[idDel];// delete the complete reference with id
var propDel = 'name';
delete myJson[idDel][propDel];// delete only the property 'name' of the reference with id
// parsing complete json
$.each(myJson, function(key, obj){// parse objects
if(condition){
delete myJson[key];// delete reference
}
$.each(obj, function(propName, val){// parse properties
if(condition){
delete obj[propName];// delete property
}
}
});