2012-04-11 108 views
1

我无法获取以下JSON数组对象的长度。其实我需要返回倒数第二个数组元素的值。无法返回JSON数组对象的倒数第二个元素的值

var myObject = { "Maths" : [{"Name" : "Amit", "Marks" : 67, "age" : 23 }, 
{"Name" : "Sandeep", "Marks" : 65, "age" : 21 }, 
{"Name" : "Shali", "Marks" : 56, "age" : 27 }, 
{"Name" : "Santosh", "Marks" : 78, "age" : 41 }] } 

a = myObject.Maths.length - 1; 
alert(a); 
var b=new Object(); 
b.mk=myObject.Maths[a]['Marks']; 
b.ag=myObject.Maths[a]['age']; 
alert(b.mk); 
alert(b.ag); 

为什么返回78和41时,它应该返回56和27?

+3

阵列基于'0'。倒数第二个是'.length - 2'。 – 2012-04-11 02:25:31

+0

我还在想为什么我没有注意到!谢谢! – Karthick 2012-04-11 02:29:05

回答

3

为什么你认为它会返回56和27?你知道数组索引从0开始?
所以如果a = 3(长度-1,4-1 = 3)。

Math的数组的第三个索引正是你在输出中看到的。

编辑:那么,为了获得倒数第二,你的索引将需要的长度 - 2(当然要确保你数组实际上是足够长的时间没有碰上出界失误)

+1

aha ...我是如此愚蠢......我很抱歉! – Karthick 2012-04-11 02:27:01

相关问题