Преобразование массива в два других
У меня есть объект, возвращенный через 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);