4

为什么我会在此代码中出现此错误:Uncaught SyntaxError: Unexpected token {在第 1 行。

var cube_points = {
    {'x' : 100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : 100}
};
4

2 回答 2

7

您拥有的不是有效的 javascript 对象定义。{}表示对象,所以在里面你应该有属性,而不是 other {}。您需要的是一个用 表示的数组[]

var cube_points = [
    {'x' : 100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : 100}
];

然后您可以像这样访问它:

cube_points[2].y
于 2011-05-20T20:59:12.300 回答
7

您的外部对象的元素有值但没有键。如果您想要一个立方体点数组,请使用方括号来表示数组文字:

var cube_points = [
    {'x' : 100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : -100},
    {'x' : -100, 'y' : 100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : 100},
    {'x' : 100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : -100},
    {'x' : -100, 'y' : -100, 'z' : 100}
];

如果您想要一个对象,请给项目一个键。这可能是数字或字母,甚至是对象:

var cube_points = {
    1: {'x' : 100, 'y' : 100, 'z' : 100},
    2: {'x' : 100, 'y' : 100, 'z' : -100},
    'q': {'x' : -100, 'y' : 100, 'z' : -100},
    'z': {'x' : -100, 'y' : 100, 'z' : 100},
    '25': {'x' : 100, 'y' : -100, 'z' : 100},
    '26': {'x' : 100, 'y' : -100, 'z' : -100},
    10: {'x' : -100, 'y' : -100, 'z' : -100},
    11: {'x' : -100, 'y' : -100, 'z' : 100}
};

显然,使用对象需要某种有序的键选择系统。由于您的点不容易命名,因此最好使用数组。但我想展示对象文字符号的样子。

于 2011-05-20T21:00:55.107 回答