使用键作为标题和值将对象集合转换为CSV

Joh*_*Doe 5 javascript csv

我有一个myObject这样的物体

 0:
    timestamp: 1525879470
    name: "testing"
    lastname: "testingdone"
 1: 
    timestamp: 1525879470
    name: "testing2"
    lastname: "testingdone2"
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种将其很好地转换为csv的方法

timestamp,name,lastname
1525879470,testing,testingdone
1525879470,testing2,testingdone2
Run Code Online (Sandbox Code Playgroud)

好消息是我可以提取标题

var headers = Object.keys(myObject.reduce(function (result, obj) {
                            return Object.assign(result, obj);
                        }, {}));
Run Code Online (Sandbox Code Playgroud)

标头var将给我一个标头数组,例如

Array(3): timestamp, name, lastname

我只是想从对象(例如标头)的数组中提取值,然后最终将其如上所述转换为CSV。我尝试使用数组映射,但由于某种原因我无法弄清楚

Nen*_*car 8

如果那是对象数组,您可以先获取标题,然后获取值并从中创建字符串。

const data = [ {timestamp: 1525879470,name: "testing",lastname: "testingdone"
}, {timestamp: 1525879470,name: "testing2",lastname: "testingdone2"}]

let csv = '';
let header = Object.keys(data[0]).join(',');
let values = data.map(o => Object.values(o).join(',')).join('\n');

csv += header + '\n' + values;
console.log(csv)
Run Code Online (Sandbox Code Playgroud)