У меня есть некоторые данные, которые выглядят так:
let arr = [
{
a:1,
b:2,
c:3
},
{
a:4,
b:5,
c:6
},
{
a:7,
b:8,
c:9
}
]
, и я бы хотел, чтобы они переформатировались следующим образом
{
a: [1,4,7],
b: [2,5,8],
c: [3,6,9]
}
Вот мое решение:
let arr = [
{
a:1,
b:2,
c:3
},
{
a:4,
b:5,
c:6
},
{
a:7,
b:8,
c:9
}
]
// {
// a: [1,4,7],
// b: [2,5,8],
// c: [3,6,9]
// }
function practice (arr) {
console.log(typeof arr) // WHY IS THIS RETURNING AN OBJECT???
let keys = Object.keys(arr[0])
const resultObj = {}
for (let key of keys) {
resultObj[key] = []
}
arr.forEach((x,idx)=> {
for (let key in x) {
resultObj[key].push(x[key])
}
})
return resultObj
}
practice(arr)
Я знаю, что моё решение не самый эффективный метод. Когда я выполнил упражнение, у меня возникли проблемы с пониманием следующих понятий:
- На первый взгляд
arr
мне кажется массивом с одним индексом, содержащим три объекта, Например, arr[0] = {obj1},{obj2},{obj3}
, но я выполнил проверку typeof
на arr
, и он вернул объект. - Когда я консольный журнал
arr
с указанным индексом arr[1]
, он печатает {a:4,b:5,c:6}
как будто это массив. - Мой вопрос: что здесь происходит и что именно представляет собой этот тип структуры данных?
Пожалуйста, предложите мне более чистый и эффективный код для этот вопрос и объясните мне понятия.