Преобразование массива в два других

У меня есть объект, возвращенный через ajax:

{1: [37, 142], 4:[454, 471]}

Как на JS или jQuery его преобразовать в два массива вида:

[1, 4]
[37, 142, 454, 471]

Ответы (2 шт):

Автор решения: mepihindeveloper

Для получения массивов можно использовать следующий код:

let data = {
  1: [37, 142],
  4: [454, 471]
};
let keys = Object.keys(data);
let values = [];
Object.values(data).forEach(e => values = values.concat(e))
console.log(keys, values);

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

→ Ссылка
Автор решения: teran

видимо как-то так

const data = {1: [37, 142], 4:[454, 471]}

let keys = Object.keys(data).map(v => +v);
console.log(keys);

let values = Object.values(data).reduce((acc,v) => acc.concat(v), []);
console.log(values);

→ Ссылка