Как представить разреженный массив в JSON?

У меня есть разреженный массив, который я хочу представить в JSON. Например:

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

Как я могу это сделать? Я могу это сделать?

2 ответа

Решение

Вы можете представить его как простой объект:

{
  "-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 Цикл, чтобы предотвратить итерацию свойств, определенных на более высоких уровнях цепочки прототипов, что может вызвать проблемы и непредвиденное поведение... подробнее здесь.

Да, ты можешь. Имя члена объекта JSON - это строки. Строки могут содержать любое значение в кодировке UTF-8:

{
  "-10"   : 100,
  "-1"    : 102,
  "3"     : 44,
  "12"    : -87,
  "12345" : 0
}
Другие вопросы по тегам