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 に答える