6

我有一个稀疏数组,我想用 JSON 表示。例如:

  -10 => 100
   -1 => 102
    3 => 44
   12 => -87
12345 => 0

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

4

2 回答 2

9

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

{
  "-10" : 100,
  "-1" : 102,
  "3" : 44,
  "12" : -87,
  "12345" : 0
}

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

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    var value = obj[key];
  }
}

如果你想通过键访问特定元素,你也可以在这里使用方括号属性访问器

obj['-10']; // 100

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

于 2009-11-14T08:22:31.123 回答
2

是的你可以。JSON 对象成员名称是字符串。字符串可以保存任何 UTF-8 编码值:

{
  "-10"   : 100,
  "-1"    : 102,
  "3"     : 44,
  "12"    : -87,
  "12345" : 0
}
于 2009-11-14T08:20:25.683 回答