代码之家  ›  专栏  ›  技术社区  ›  ESS

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

  •  0
  • ESS  · 技术社区  · 7 年前

    我不熟悉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(p => predict(p));
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   phuzi    7 年前

    怎么样

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