1

我无法获得以下 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);

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

4

1 回答 1

3

为什么你认为它会返回 56 和 27?您是否意识到数组索引从 0 开始?
因此,如果 a = 3(长度 - 1、4 - 1 = 3)。

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

编辑:所以,为了得到倒数第二个,你的索引需要长度 - 2。(当然要确保你的数组实际上足够长,不会遇到越界错误)

于 2012-04-11T02:24:45.207 回答