在 javascript returns 错误中构建对象

Building an object in javascript returns error

我正在构建一个数组作为对象,我正在编写的函数最终会抓取该对象。它是静态数据,因此一旦它被填充,就不可能添加或删除任何内容,但我很难正确格式化它。

如果我只有一条记录的数据,那么变量声明效果很好:

   var panel = {
    'url':'http://www.minorworksoflydgate.net/Testament/Clopton/nw_test_1.html', 
    'x':[1.63, 3.53],
    'y':[6.58, 7.26],
    'z':[2.05, 2.81]
    }

但是,如果我尝试添加第二条记录的信息价值:

var panel = {'0':['url':'http://www.minorworksoflydgate.net/Testament/Clopton/sw_test_1.html',          
        'x':[-9.38, -7.47],
        'y':[6.80, 7.49],
        'z':[-8.18, -8.85]],'1':[
        'url':'http://www.minorworksoflydgate.net/Testament/Clopton/nw_test_1.html', 
        'x':[1.63, 3.53],
        'y':[6.58, 7.26],
        'z':[2.05, 2.81]}
        }

我收到以下错误:SyntaxError: Unexpected token ':'. Expected either a closing ']' or a ',' following an array element.我已经尝试了所有我能想到的组合:将每个大块数据包装在大括号或方括号中,并显式声明键和不声明键。这一切都会导致此错误的变化。我在格式化此信息方面哪里搞砸了?

你以一种奇怪的方式组合了对象字面量和数组。这可能是您正在寻找的

[
  {
    '0':....
   },
  {
    '1':...
   }
]

这是一个对象数组,其中的对象可以是你的数据记录。

我在代码中看到的问题是

[ '0': '.....'] //illegal

方括号表示数组,这是一个数据列表,无论是字符串、数字还是对象。

[ '0', {}, 'blah', 1.2] //legal

花括号是对象字面量或关联数组。

{ '0': '...' }

已编辑

人们说数组是对象文字,因为它们在 运行 时表现得像一个对象。您正在定义数组和对象文字,因此有一些特定的规则在起作用。在您的代码中,如果您改写

var panel = [];
var index1 = []
panel['0'] = index1
index1['url'] = 'http://';
index1['x'] = 1.2;
var index2 = [];
index2['url'] = 'http://';

这可行,但如您所见,它有点复杂。当您编写数组文字时,它是逗号分隔值的列表,而不是关联的键。如果你想要关联键,请使用大括号。

如果您需要更多信息,请搜索 JSON 数据格式。