我有两个数组:
let columns = [ 'name', 'date', 'id']; // actually around 30 columns
let values = [
[ 'mike', '2018', '1234'],
// many more rows
];
我正在寻找漂亮的代码,最好是ES6单行代码,它将其转换为这样的对象数组:
[
{ name: 'mike', date: '2018', id: '1234' },
// ...
]
我可以循环执行此操作,但我正在寻找更优雅的解决方案。谢谢!
答案 0 :(得分:0)
您可以通过使用所需键/值对创建新对象来映射对象。
let columns = ['name', 'date', 'id'],
values = [['mike', '2018', '1234'], ['jane', '2017', '5678']],
result = values.map(a => Object.assign(...columns.map((k, i) => ({ [k]: a[i] }))));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:-1)
就这样
let columns = ['name', 'date', 'id']; // actually around 30 columns
let values = [
['mike', '2018', '1234']
];
var result = {};
columns.forEach((key, i) => result[key] = values[0][i]);
console.log(result);