как преобразовать объект массива в тип массива csv

#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:

  1. Создайте несколько заголовков из первого объекта Object.keys .
  2. map по массиву и для каждого объекта возвращайте его Object.values (массив), а join массив-в строку, разделенную запятыми.
  3. Объедините заголовки и сопоставленные данные в новый массив.
 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);