我有一个响应对象,看起来像这样:
const response = {
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\compressed.jpg': [{ name: 'bear', confidence: '99.21' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\large.jpg': [{ name: 'bear', confidence: '98.29' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\small.jpg': [{ name: 'bear', confidence: '99.42' }]
}
我想将此对象转换为此:
["G:\\magisterka\\master-project\\animals\\bear\\with\\4\\compressed.jpg, bear, 99.25", "G:\\magisterka\\master-project\\animals\\bear\\with\\4\\large.jpg, bear, 98.29",
"G:\\magisterka\\master-project\\animals\\bear\\with\\4\\small.jpg, bear, 99.42"]
我需要像这样转换它,因为我将在.csv
文件中使用这些数据。
有人有什么想法吗?
答案 0 :(得分:1)
您可以使用Object.entries
,Object.values
,map
和join
来放置一根长衬纸。这将适用于任何对象,但是将忽略其键:
const response = {
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\compressed.jpg': [{ name: 'bear', confidence: '99.21' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\large.jpg': [{ name: 'bear', confidence: '98.29' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\small.jpg': [{ name: 'bear', confidence: '99.42' }]
}
const csv = Object.entries(response).map(([k, v]) => [k, ...Object.values(v[0])].join(', '))
console.log(csv)
答案 1 :(得分:-2)
对于单个循环的,易于阅读的解决方案:
const response = {
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\compressed.jpg': [{ name: 'bear', confidence: '99.21' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\large.jpg': [{ name: 'bear', confidence: '98.29' }],
'G:\\magisterka\\master-project\\animals\\bear\\with\\4\\small.jpg': [{ name: 'bear', confidence: '99.42' }]
}
const parsed = Object.keys(response).map(key => {
const val = response[key][0]
return `${key}, ${val.name}, ${val.confidence}`
})
console.log(parsed)
答案 2 :(得分:-2)
使用Object.entries()方法。这就是你想要的。阅读文档。