2013-01-25 37 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数组)。