将reduce函数转换为适用于IE

2023-12-08

好吧,几个月前我得到了一些帮助,想出了一个解决方案来记录数组中的元素数量:循环遍历多个数组并记录每个元素的计数

这个解决方案对我来说非常有效,直到我意识到它正在使用ES6这是不支持的IE 11。我尝试将其转换为使用函数而不是箭头函数,以便它可以在所有浏览器上运行,但遇到一些问题。

这是当前在 IE 中不起作用的代码:

var b = data.reduce((acc, cur) => {
    cur.ProductHandlingTypes.map(({ Name }) => Name).forEach(n => acc[n] = (acc[n] || 0) + 1);
    return acc;
},
{});

如果有人可以指导我这里需要更改哪些内容才能在 IE 中运行,那就太好了!


IE 11 不支持箭头函数 [1],也不支持解构 [2],因此将其转换为 ES5 语法:

var b = data.reduce(function(acc, cur) {
  cur.ProductHandlingTypes
    .map(function(obj) {
      return obj.Name
    })
    .forEach(function(n) {
      return acc[n] = (acc[n] || 0) + 1
    })

  return acc
}, {});

[1] http://caniuse.com/#feat=arrow-functions

[2] http://kangax.github.io/compat-table/es6/#test-destructuring

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将reduce函数转换为适用于IE 的相关文章