gpt4 book ai didi

javascript - 使用 ES6 将对象数组映射到带有 header 的数组数组

转载 作者:行者123 更新时间:2023-12-01 03:35:05 25 4
gpt4 key购买 nike

我想将从后端的 json 响应中获得的对象数组映射到数组数组,第一行是标题(标题)数组。我将使用此数组使其可在 csv 文件中下载。

此外,我想保留最终用户在 csv 文件中并不真正感兴趣的几个标题/列。

我的代码运行良好,但我认为可以使用更简洁的代码来完成。我可以很好地使用 ES6/ES2015,但我自己对扩展语法和其他 ES6 优点并没有真正的经验,因此非常感谢任何关于更好、更现代(函数式/响应式(Reactive)?)方法的建议。

const originalData = [
{name: 'Gizmo', species: 'cat', age: '9', raw: 'G9e76rd', updated_at: '1318874398806', skill: 'sleeping'},
{name: 'Benny', species: 'dog', age: '3', raw: '98HDo2h', updated_at: '1318874392417', skill: 'chasing tail'},
{name: 'Oscar', species: 'cat', age: '2', raw: '9da8Ro1', updated_at: '1318874390283', skill: 'meowing'}
]

let headers = []
const firstRow = originalData[0]
for (var key in firstRow) {
if (firstRow.hasOwnProperty(key)) {
if (!['raw','updated_at'].includes(key)) {
headers.push(key)
}
}
}

const d = originalData.map(function(_, i) {
return headers.map(function(header) {
return originalData[i][header]
}.bind(this))
}.bind(this))

const result = [headers].concat(d)

console.log(result)

最佳答案

类似这样的吗?

const originalData = [
{ name: 'Gizmo', species: 'cat', age: '9', raw: 'G9e76rd', updated_at: '1318874398806', skill: 'sleeping' },
{ name: 'Benny', species: 'dog', age: '3', raw: '98HDo2h', updated_at: '1318874392417', skill: 'chasing tail' },
{ name: 'Oscar', species: 'cat', age: '2', raw: '9da8Ro1', updated_at: '1318874390283', skill: 'meowing' }
]

const headers = Object.keys(originalData[0]).filter(key => !['raw', 'updated_at'].includes(key));
const d = originalData.map(obj => headers.map(key => obj[key]))
const result = [headers, ...d];

console.log(result)

关于javascript - 使用 ES6 将对象数组映射到带有 header 的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44334314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com