Как правильно сформировать массив js
Есть массив объектов
0: 'tkm': [0.18, 1.29, 0.11, 4.1],
1: 'tsm': [0.14, 1.21, 0.15, 4.5],
Я бы хотел его отформатировать и привести к виду:
0: ['tkm', 0.18, 1.29, 0.11, 4.1],
1: ['tsm', 0.14, 1.21, 0.15, 4.5],
Тем самым перенести ключ в значение. Пытаюсь реализовать это, но у меня числа в текст как одно значение выводятся
let refactor= $.map(JSON.parse(JSON.stringify(key)), (value, i) => {
$.extend(value, {name: i})
}
console.log( [String(Object.keys(key))+','+refactor] );
Уже сижу над этой глупостью много времени, прошу помощи.
Ответы (3 шт):
Автор решения: Паша Харченко
→ Ссылка
let refactor= $.map(JSON.parse(JSON.stringify(key)), (value, i) =>
$.extend(value, { name: i }));
let obj = refactor;
obj.unshift(Object.keys(key)[0]);
Автор решения: ΝNL993
→ Ссылка
Вы хотели вот так?:
let arr = [
{ 'tkm': [0.18, 1.29, 0.11, 4.1] },
{ 'tsm': [0.14, 1.21, 0.15, 4.5] },
]
arr = arr.map((e, i, a) => {
let key = Object.keys(a[i])[0]
return [key].concat(e[key])
})
console.log(arr)
Объяснение
Через метод map в callback'е мы передаём аргументы e (Текущий элемент), i (Текущий индекс элемента) и a (Текущий массив), дальше бы берём ключ из отталкиваясь от текущего индекса и сохраняем его в переменную, и возвращаем массив с ключом, который соединённый с текущим массивом и так на каждой интерации.
Автор решения: Pavel Nazarian
→ Ссылка
let arr = [{'tkm': [0.18, 1.29, 0.11, 4.1]},{'tsm': [0.14, 1.21, 0.15, 4.5]}];
let new_arr = arr.map(el => [Object.keys(el)[0],...Object.values(el)[0]])
console.log(new_arr);
