#javascript
Вопрос:
У меня есть этот объект массива, и я хочу попробовать преобразовать его в массив типа like для csv-файла. Например, как объект массива ниже
const arrayObject = [
{
Name: "Alex",
Age: 16,
Address: "Miami",
},
{
Name: "James",
Age: 36,
Address: "LA",
},
{
Name: "Mark",
Age: 25,
Address: "San Diego",
},
];
и то, что я ожидаю увидеть, будет выглядеть так:
[
'Name,Age,Address',
'Alex,16,Miami',
'James,36,LA',
'Mark,25,San Diego'
]
Комментарии:
1. Что вы пытались сделать для этого? Или что вы думаете по этому поводу. Это помогает нам лучше помогать вам
Ответ №1:
Пожалуйста, используйте эти функции. Объект.ключи(), Объект.значения(), Массив.карта(), Массив.фильтр()
const arrayObject = [{
Name: 'Alex',
Age: 16,
Address: 'Miami'
},
{
Name: 'James',
Age: 36,
Address: 'LA'
},
{
Name: 'Mark',
Age: 25,
Address: 'San Diego',
}
]
const newKeyArray = arrayObject.map(item => Object.keys(item).toString()).filter((item, index, self) => self.indexOf(item) === index);
const newValueArray = arrayObject.map(item => Object.values(item).toString());
const result = newKeyArray.concat(newValueArray);
console.log(result);
Ответ №2:
let data = [{ Name: 'Alex', Age: 16, Address: 'Miami' }, { Name: 'James', Age: 36, Address: 'LA' }, { Name: 'Mark', Age: 25, Address: 'San Diego',
}]
console.log(
[
Object.keys(data[0]).join(','),
...data.map(itm => Object.values(itm).join(','))
]
)
Комментарии:
1. Вы пропускаете заголовки.
Ответ №3:
Сопоставьте переменную ArrayObject и верните значения в виде строки. Это будет работать для любых других свойств, которые вы добавляете.
const arrayObject = [{
Name: 'Alex',
Age: 16,
Address: 'Miami'
},
{
Name: 'James',
Age: 36,
Address: 'LA'
},
{
Name: 'Mark',
Age: 25,
Address: 'San Diego',
}
]
const newArray = arrayObject.map(item => {
return Object.values(item).toString();
});
console.log(newArray)
Комментарии:
1. Вы пропускаете заголовки.
Ответ №4:
Получите используемые ключи Object.keys
и значения Object.values
, а затем используйте concat, чтобы объединить их в конечный результат.
const arrayObject = [{
Name: 'Alex',
Age: 16,
Address: 'Miami'
},
{
Name: 'James',
Age: 36,
Address: 'LA'
},
{
Name: 'Mark',
Age: 25,
Address: 'San Diego',
}];
const keys = Object.keys(arrayObject[0]);
const values = arrayObject.map(item => Object.values(item)).toString().split(',');
const res = keys.concat(values);
console.log(res);
Ответ №5:
- Создайте несколько заголовков из первого объекта
Object.keys
. map
по массиву и для каждого объекта возвращайте егоObject.values
(массив), аjoin
массив-в строку, разделенную запятыми.- Объедините заголовки и сопоставленные данные в новый массив.
const arr=[{Name:'Alex',Age:16,Address:'Miami'},{Name:'James',Age:36,Address:'LA'},{Name:'Mark',Age:25,Address:'San Diego'}];
const headings = Object.keys(arr[0]).join(',');
const rows = arr.map(obj => {
return Object.values(obj).join(',');
});
const csv = [headings, ...rows];
console.log(csv);