Как сделать этот объект JSON в массив? [Дубликат]

1

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

{  
    "match1": {
      "team1": "2",
      "team2": "0"
    },
    "match2": {
      "team1": "3",
      "team2": "1"
    }  
}

до сих пор после поиска и поиска похожих вопросов, я придумал это

var data = {
  "match1": {
    "team1": "2",
    "team2": "0"
  },
  "match2": {
    "team1": "3",
    "team2": "1"
  }
}

const array = Object.values(data.match1).map((key) => [key, data[key]]);

console.log(array);

// outputs 
//[2, , 0, ]

Выглядит хорошо, но мне нужно, чтобы я написал для каждого свойства 'match', и мне нужен способ вывести их вместе, поскольку у свойства match может быть много, например, match3, match4 и т.д., Также не знаю, почему двойная запятая?

поэтому ожидаемый результат, который я хочу,

[[2,0], [3,1]];

как это сделать?

  • 6
    Это не JSON, это объект.
  • 2
    Пожалуйста, прочтите описание использования тега json .
Показать ещё 3 комментария
Теги:
object
arrays

2 ответа

2
Лучший ответ

var data = {  
    "match1": {
      "team1": "2",
      "team2": "0"
    },
    "match2": {
      "team1": "3",
      "team2": "1"
    }  
}

var result = Object.keys(data).map(key => Object.values(data[key]))

console.log(result)

Если вы хотите получить значения в виде числа

var result = Object.keys(data).map(key => Object.values(data[key]).map(string  => parseInt(string)))
  • 2
    Единственная техническая особенность заключается в том, что их желаемым результатом являются числа, а не строки, но это тривиально исправить
  • 0
    Возможно, что ни матчи, ни команды не будут в ожидаемом порядке.
Показать ещё 1 комментарий
1

var data = {"match1": {"team1": "2","team2": "0"},"match2": {"team1": "3","team2": "1"}}

var result = Object.values(data).map( val => Object.values(val) )

console.log(result);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню