可能重复:
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 :(得分:2)
由于您将对象放在另一个数组中(仅限于对象),因此您需要制作类似的内容来获取值:
var x_axis = values[0][0].y_value.x_axis,
y_axis = values[0][0].y_value.y_axis;
答案 1 :(得分: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;
请注意,对象也支持方括号表示法,如果property-name / key是变量的值,这非常有用:
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)。