如何用JSON表示稀疏数组?

Vil*_*lx- 3 json sparse-array

我有一个我希望用JSON表示的稀疏数组.例如:

  -10 => 100
   -1 => 102
    3 => 44
   12 => -87
12345 => 0
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我可以这样做吗?

CMS*_*CMS 7

您可以将其表示为一个简单的对象:

{
  "-10" : 100,
  "-1" : 102,
  "3" : 44,
  "12" : -87,
  "12345" : 0
}
Run Code Online (Sandbox Code Playgroud)

由于它是一个简单的对象,你不能像数组一样迭代它,但你可以使用以下for...in语句:

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    var value = obj[key];
  }
}
Run Code Online (Sandbox Code Playgroud)

如果要按键访问特定元素,也可以在此处使用方括号属性访问器:

obj['-10']; // 100
Run Code Online (Sandbox Code Playgroud)

请注意,我hasOwnPropertyfor...in循环内部使用方法,这是为了防止在原型链的更高级别上定义的迭代属性,这可能导致问题和意外行为...更多信息在这里.