如何访问此嵌套JavaScript对象中的嵌套键?
我有以下javascript对象:如何访问此嵌套JavaScript对象中的嵌套键?
result = {
"banking6dig":{
"GM-B-001":{
"releaseDate":"2/2/2012 14:44","noOfHex":"3","versInfo":"6 digit Banking"
},
"GM-B-002":{
"releaseDate":"1/2/2012 14:46","noOfHex":"3","versInfo":"6 digit Banking with changes"
}
},
"paynpark":[]
}
说明:
“banking6dig” 和 “paynpark” 是应用
“banking6dig” 有两个子版本: “GM-B-001” 和“GM-B-002”
“paynpark”没有颠覆。
此外,每个subversion都有自己的属性,即“releaseDate”,“noOfHex”和“versInfo”。
该对象的“结果”是在php请求之后构建的,所以它可以包含任意数量的应用程序和子版本;但是格式总是一样的。
我曾经尝试这样做对的jsfiddle:http://jsfiddle.net/2JLtZ/1/
- 我如何找出“颠覆”的数量在每一个“应用程序”? (我得到了一些40“颠覆”!)
- 如何添加一个应用程序的对象“结果”,例如,“电”与其属性重置?
- 如何添加一个颠覆到“paynpark”,例如“固定利率”?
- 如何修改subversions属性,例如将“GM-B-001”的“releaseDate”更改为“2012年3月12日14:46”?
1.
var i=0;
for (var j in result['banking6dig']) i++;
alert('banking6dig has '+i+' subversions'):
2.
result.electricity={}
3.
paynpark.fixedRate={};
感谢AlienWebguy指出这一点。
4.
result['banking6dig']["GM-B-001"]["releaseDate"]="3/12/2012 14:46";
result = {"banking6dig":{"GM-B-001":{"releaseDate":"2/2/2012 14:44","noOfHex":"3","versInfo":"6 digit Banking"},"GM-B-002":{"releaseDate":"1/2/2012 14:46","noOfHex":"3","versInfo":"6 digit Banking with changes"}},"paynpark":[]};
var app = [],
svn = {};
for (var _app in result) {
if(result.hasOwnProperty(_app)){
app.push(_app);
svn[_app] = [];
for (var _svn in result[_app]){
if(result[_app].hasOwnProperty(_svn)){
svn[_app].push(_svn);
}
}
}
}
// How man apps?
alert(app.length);
// How many subversions?
alert(svn['banking6dig'].length);
// Add an app 'electricity'
result.electricity = {};
// Add subversion to paynpark
result.paynpark.fixedRate = {}
// Add electricity
result.electricity = {};
app.push('electricity');
// Modify subversion
result.banking6dig['GM-B-001'].releaseDate = '3/12/2012';
console.log(result);
wowwwwwwwww ....生病了,非常感谢,请回复,如果我有进一步的疑问... – dinchakpianist 2012-02-02 19:11:12
很高兴帮助:) – AlienWebguy 2012-02-02 19:16:27
数组是在JS对象。你可以添加你想要的任何属性。 'var foo = []; foo.foo ='bar';警报(foo.foo);'。它意味着'foo'的原型是Array而不是Object。 – AlienWebguy 2012-02-02 19:16:03
@AlienWebguy我站在纠正,不知道,只是验证它。谢谢,编辑我的答案。 – 2012-02-02 19:39:36