Javascript 如何删除此代码中ES6箭头函数的使用

Javascript 如何删除此代码中ES6箭头函数的使用,javascript,ecmascript-6,arrow-functions,Javascript,Ecmascript 6,Arrow Functions,我不熟悉ES6 arrow功能,我从供应商处收到以下代码: Highcharts.seriesType('linearregression', 'pareto', { name: 'Linear Regression' }, { setDerivedData: function() { if (this.baseSeries.yData.length > 1) { var xValues = this.baseSeries.xData, yDat

我不熟悉ES6 arrow功能,我从供应商处收到以下代码:

Highcharts.seriesType('linearregression', 'pareto', {
  name: 'Linear Regression'
}, {
  setDerivedData: function() {
    if (this.baseSeries.yData.length > 1) {
      var xValues = this.baseSeries.xData,
        yData = this.baseSeries.yData,
        mainData = this.baseSeries.data;
      var sum = [0, 0, 0, 0, 0],
        len = xValues.length,
        data, rise, gradient, intercept;
      Highcharts.each(xValues, function(x, i) {
        sum[0] += x;
        sum[1] += yData[i];
        sum[2] += x * x;
        sum[3] += x * yData[i];
        sum[4] += yData[i] * yData[i];
      });
      run = ((len * sum[2]) - (sum[0] * sum[0]));
      rise = ((len * sum[3]) - (sum[0] * sum[1]));
      gradient = run === 0 ? 0 : (rise / run);
      intercept = (sum[1] / len) - ((gradient * sum[0]) / len);
      function round(value, decimals) {
        return Number(Math.round(value + 'e' + decimals) + 'e-' + decimals);
      };
      function predict(x) {
        return [mainData[x].name, round((gradient * x) + intercept, 5)];
      };
      points = xValues.map(p => predict(p));
      this.setData(points, false);
    }
  }
});
我今天想把它投入生产,但刚刚发现IE中不支持ES6。如何重写它以删除箭头功能(下面的行)

怎么样

points = xValues.map(function(p) { return predict(p); });
怎么样

points = xValues.map(function(p) { return predict(p); });

使用常规函数?至少可以查找它们,这样您就可以看到它们是什么(这也可以在几分钟内回答这个问题)。将其粘贴到您喜欢的transpiler中,例如,我保留ES6语法,因为您可能会习惯使用它,因为它是Javascript的未来。老实说,作为构建步骤的一部分,您应该有一个像Babel这样的transpiler。它不仅可以确保javascript在特定的浏览器版本中工作,还可以为您捕获语法错误。如果您保持es6语法并使用Babel,也可以查看babel polyfill,因为你需要它才能在IE和Edge中工作。很抱歉,对于那些比我更擅长Javascript的人来说,这个问题似乎微不足道,但我正试图赶在最后期限之前完成,没有时间动态学习和尝试不同的选项。使用常规函数?至少可以查找它们,这样您就可以看到它们是什么(这也可以在几分钟内回答这个问题)。将其粘贴到您喜欢的transpiler中,例如,我保留ES6语法,因为您可能会习惯使用它,因为它是Javascript的未来。老实说,作为构建步骤的一部分,您应该有一个像Babel这样的transpiler。它不仅可以确保javascript在特定的浏览器版本中工作,还可以为您捕获语法错误。如果您保持es6语法并使用Babel,也可以查看babel polyfill,因为你需要它才能在IE和Edge中工作。很抱歉,对于那些比我更擅长Javascript的人来说,这个问题似乎微不足道,但我正试图赶在最后期限之前完成,没有时间进行动态学习和尝试不同的选项。谢谢@phuzi,这正是我所需要的。谢谢你的快速回复!顺便说一句,我觉得不管是谁否决了这个问题都有点苛刻。谢谢@phuzi,这正是我需要的。谢谢你的快速回复!顺便说一句,我认为无论是谁否决了这个问题都有点苛刻。