Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 分解函数映射和reduce-JS_Javascript_Arrays_Object - Fatal编程技术网

Javascript 分解函数映射和reduce-JS

Javascript 分解函数映射和reduce-JS,javascript,arrays,object,Javascript,Arrays,Object,我在这里讨论的是一个函数: function transformEmployeeData(array) { return array.map(function(data) { return data.reduce(function(a, b) { a[b[0]] = b[1]; return a; }, {}) }); } transformEmployeeData(array); 此函数用于将数组转换为如下对象: [ {firstNam

我在这里讨论的是一个函数:

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函数将数组压缩为单个值。现在我还不清楚这两个函数如何一起返回转换后的数组对象。有没有人能用外行的术语帮我理解这些部分?或者,如果没有,有没有最巧妙的方法来实现同样的目标


抱歉,新手。

从这个意义上讲,映射数组意味着返回一个新数组,其中每个值都基于某个映射函数进行了转换

const number=[1,2,3];
const squares=numbers.map(num=>num**2);
控制台。原木(方形)请检查此链接-关于地图、缩小和过滤