我正在处理一个函数:
function transformEmployeeData(array) {
return array.map(function(data) {
return data.reduce(function(a, b) {
a[b[0]] = b[1];
return a;
}, {})
});
}
transformEmployeeData(array);
该函数将数组转换为如下格式的对象:
[
{firstName: 'Joe', lastName: 'Blow', age: 42, role: 'clerk'},
{firstName: 'Mary', lastName: 'Jenkins', age: 36, role: 'manager'}
]
所以,如果你有一个数组:
[
[
['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role', 'clerk']
],
[
['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role', 'manager']
]
]
它会将其转换为那样。我想聚焦于这部分:
return array.map(function(data) {
return data.reduce(function(a, b) {
a[b[0]] = b[1];
return a;
}, {})
});
我学习了map函数,它可以迭代数组并对其执行某些操作,而reduce函数将数组压缩成单个值。目前我不清楚这两个函数如何协同工作并返回转换后的数组对象。有没有人能够用通俗易懂的语言帮助我理解这些部分?如果没有,有没有更简单的方法实现相同的功能?
抱歉,我是新手。