0

可能重复:
我有一个嵌套的数据结构/JSON,我怎样才能访问一个特定的值?

我是 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
       }
   }]];

我想访问 x_axis 的值,比如 values[0] 中的 y_value,我应该使用什么方法?提前致谢

4

2 回答 2

2

由于您将对象放在另一个数组中(仅保存对象),因此您需要进行类似的操作来获取值:

var x_axis = values[0][0].y_value.x_axis,
    y_axis = values[0][0].y_value.y_axis;
于 2013-01-25T12:19:40.940 回答
1

如果可能的话,没有充分的理由将每个对象包装在另一个数组中,就像你正在做的那样:

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

如果您可以更改数据,只需确保您的脚本接收一个包含所有对象的数组(如var better上面的格式)。
按照现在的情况,您还必须访问内部数组的第一个索引:

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

如果您更改格式以适合我的建议:

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

够了...如果可以的话,请使用第二种格式,真的。它不仅需要更少的输入,而且无论开销多么小,数组都不是免费的。您正在创建完全不相关的第二个对象(instanceof Array)。

于 2013-01-25T12:32:31.310 回答