Как JSON.parse и игнорировать индексы массива?

#javascript #json #object

#javascript #json #объект

Вопрос:

У меня есть этот образец строки, который я хочу проанализировать как объект

 const payload = "{"teamIds":[584,585,586]}";

console.log(JSON.parse(payload))
  

Однако результат автоматически добавляет индексы:

 teamIds:
  0: 584,
  1: 585,
  2: 586
  

Как мне избавиться от индексов в этом случае и просто сохранить [584,585,586] как есть?

Редактировать

Исходя из фона PHP, я подумал, что это возможно. Тем не менее, спасибо вам за всю вашу помощь.

Комментарии:

1. То, что вы видите, является особенностью консоли. функция регистрации; все массивы в javascript будут иметь индекс, связанный с каждым числом. То, что вы видите, — это всего лишь одна визуализация этого.

2. Когда вы выполняете JSON.parse , вы просите превратить вашу строку в объект JSON. Если вы хотите, [584,585,586] чтобы результирующий объект был представлен в виде строки, вам нужно заключить его в двойные / одинарные кавычки вокруг исходной строки.

Ответ №1:

Вы не можете, так работают массивы, у них должны быть индексы для значений, которые устанавливаются автоматически, если вы не предоставляете какие-либо из своих. Вот как это работает, в javascript вы можете назначить индекс, но тогда он становится объектом, а не массивом, но в массиве не может быть значения без индекса.

Комментарии:

1. Я думаю, вы имеете в виду, что это становится объектом.

2. JSON — это объект, бессмысленно говорить, что объект JSON, а JSON — сокращение от обозначения объектов JavaScript.

3. Ключевое слово — «нотация». JSON — это строка, которую вы создаете из объекта или массива при вызове JSON.stringify() .

Ответ №2:

 const payload = "{"teamIds":[584,585,586]}";

console.log('[' JSON.parse(payload).teamIds.toString() ']')