【发布时间】:2017-11-04 04:23:29
【问题描述】:
我想将从后端的json 响应中获得的对象数组映射到数组数组,第一行是标题(标题)数组。我将使用此数组使其可在 csv 文件中下载。
另外,我想保留一些对于最终用户来说并不真正有趣的标题/列,以便在他们的 csv 文件中拥有。
我的代码运行良好,但我认为可以使用更简洁的代码来完成。我对使用 ES6 / ES2015 很好,但我自己并没有真正体验过扩展语法和其他 ES6 好东西,因此非常感谢任何关于更好、更现代(功能性/反应性?)方法的建议。
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)
【问题讨论】:
-
"我的代码运行良好" 那么您的问题可能会更好地放在Code Review 上,但在这样做之前请阅读他们的帮助中心。
-
@MikeMcCaughan,不知道代码审查,谢谢。
标签: javascript arrays functional-programming ecmascript-6 concat