2013-01-25 72 views
0
數組值

可能重複:
I have a nested data structure/JSON, how can I access a specific value?訪問在對象

我的JavaScript初學者,並已創建的對象的以下陣列中的Javascript:

var values = [[{ 
     x_value: { 
      x_axis: 1, 
      y_axis: 1.8445 
     }, 
     y_value: { 
      x_axis: 1, 
      y_axis: 1.2445 
     }, 
     z_value: { 
      x_axis: 1, 
      y_axis: 1.1445 
     } 
    }],[{ 
     x_value: { 
      x_axis: 2, 
      y_axis: 1.35 
     }, 
     y_value: { 
      x_axis: 2, 
      y_axis: 1.245 
     }, 
     z_value: { 
      x_axis: 22, 
      y_axis: 1.345 
     } 
    }],[{ 
     x_value: { 
      x_axis: 3, 
      y_axis: 1.087 
     }, 
     y_value: { 
      x_axis: 3, 
      y_axis: 1.125 
     }, 
     z_value: { 
      x_axis: 3, 
      y_axis: 1.95 
     } 
    }]]; 

我想要在值[0]中訪問y_value的x_axis的值,我應該使用什麼方法?在此先感謝

+0

我建議閱讀[MDN Javascript指南](https://developer.mozilla.org/en-US/docs/JavaScript/Guide)以瞭解基本知識,和/或http://eloquentjavascript.net /。 –

回答

2

既然你放置在另一個數組你的對象(控股僅對象),那麼你需要做類似的東西來獲取值:

var x_axis = values[0][0].y_value.x_axis, 
    y_axis = values[0][0].y_value.y_axis; 
1

如果可能的話,有沒有好理由來包裝每一個對象在另一個數組,就像你正在做的:

var yourCode = [[{}],[{}]]; 
var better = [{},{}]; 

如果你可以改變的數據,只要確保你的腳本接收一個數組,包含所有對象(如var better格式以上) 。
就目前情況來看,你必須訪問內部數組的第一個指標,太:

var x = values[0][0].x_axis; 
var y = values[0][0].y_axis; 

如果更改格式,以適應我sugested:

var x = values[0].x_axis; 

注意對象還支持方括號標記,這是非常有用的,如果該屬性名稱/關鍵是一個變量的值:

var getProp = 'x_axis'; 
console.log(values[0][0].getProp);//undefined, looks for property called getProp 
console.log(values[0][0][getProp]);//returns value of x_axis property, variables value is used 

就足夠了...如果可以,PLE使用第二種格式,真的。它不僅需要較少的輸入,而且開銷較小,但數組不是免費的。您正在創建完全不相關的第二個對象(instanceof數組)。