作为 angular2/typescript 项目的一部分,我有一个对象数组。这些对象包含一组来自数据库的键/值对。然后将其映射到 ui 端的表格(使用 ag-grid-ng2
)。
表的标题是动态的并在数据库中设置。
我的一个任务是将键/值数组映射到单个对象,如下所示:
const things = [
{
field: 'some_table_header',
humanReadable: 'Some table header'
}
];
变成:
const anObjectFullOfThings = {
some_table_header: 'Some table header'
};
我目前觉得我的代码可以更加优雅和简洁,即:
let anObjectFullOfThings = {};
things.forEach((thing) => {
anObjectFullOfThings[thing.field] = thing.humanReadable;
});
我觉得一定有更好的东西,即以另一种方式映射 Object.keys 等。是否有其他方法将数组映射到对象键?
最佳答案
你拥有的一切都很好。
有些人会使用reduce
:
let anObjectFullOfThings = things.reduce((obj, thing) => {
obj[thing.field] = thing.humanReadable;
return obj;
}, {});
...但这只是一个品味问题,特别是因为 reduce
并没有真正减少任何东西,它只是在整个循环中永久保留相同的对象。
关于javascript - 有没有一种优雅的方法将键/值添加到数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41695606/