2012-04-11 56 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

相關問題