У меня есть массив объектов, и мне нужно преобразовать в CSV, но эти объекты имеют динамические ключи, я уже создаю свои столбцы CSV, используя объект с большим количеством ключей, теперь мне нужно, чтобы в строке не было атрибут столбца должен быть пустым.
Мой текущий подход:
let output = [{
"De 0 a 10, qual a chance de você RECOMENDAR o Compass?": "7",
"De 0 a 10, que nota atribui à QUALIDADE do Compass": "8",
"Alguns destes itens já apresentou defeito?": "Painel do Motorista.",
"Pergunta teste insertção dinâmica": "Painel do Motorista"
},
{
"De 0 a 10, qual a chance de você RECOMENDAR o Compass?": "7",
"De 0 a 10, que nota atribui à QUALIDADE do Compass": "8",
"Test Question":"foo",
"Alguns destes itens já apresentou defeito?": "Painel do Motorista.",
"Test 2 Question":"bar",
"Pergunta teste insertção dinâmica": "Painel do Motorista",
}]
let key = 0;
let max = 0;
output.forEach(function(v, k) {
if (max < +Object.keys(v).length) {
max = +Object.keys(v).length;
key = k;
}
});
let csvContent = "data:text/csv;charset=utf-8,";
csvContent += [
Object.keys(output[key]).join(";"),
...output.map(item => {
console.log(item)
console.log( Object.values(item).join(";"))
;
})
]
.join("\n")
.replace(/(^\[)|(\]$)/gm, "");
const csv = encodeURI(csvContent);
const link = document.createElement("a");
link.setAttribute("href", csv);
link.setAttribute("download", "export.csv");
link.click();
},
Текущий выход CSV:
De 0 a 10 qual a chance de você RECOMENDAR o Compass?,De 0 a 10 que nota atribui à QUALIDADE do Compass,Test Question,Alguns destes itens já apresentou defeito?,Test 2 Question,Pergunta teste insertção dinâmica
7,8,Painel do Motorista,Painel do Motorista,Painel do Motorista,Painel do Motorista
5,5,foo,Painel do Motorista,bar,Painel do Motorista
Требуемый выход CSV (если объект не имеет свойства столбец должен быть пустым):
De 0 a 10 qual a chance de você RECOMENDAR o Compass?,De 0 a 10 que nota atribui à QUALIDADE do Compass,Test Question,Alguns destes itens já apresentou defeito?,Test 2 Question,Pergunta teste inserção dinâmica.
7,8,,Painel do Motorista,,Painel do Motorista
5,5,foo,Painel do Motorista,bar,Painel do Motorista
Благодарим за любую помощь, заранее спасибо.