循环内调用函数和再另一个函数内循环,那种写法性能更好或者更优秀?

在业务中有遇到的问题,代码简化一下如下所示:

第一种

function drawData(rawData) {
  var fillColors = '';
  //遍历数据并做出判断
  rawData.forEach(ele => {
    switch (true) {
      case (0 <= ele.length && ele.length < 21):
        fillColors = '#43bbff'; break;
      case (21 <= ele.length && ele.length < 51):
        fillColors = '#eaffd0'; break;
      case (51 <= ele.length && ele.length < 101):
        fillColors = '#fce38a'; break;
      case (ele.length > 100):
        fillColors = '#f38181'; break;
      default: fillColors = '#43bbff';
    }
    //循环内部调用函数
    doSomething(ele, fillColors);
  });
}

function doSomething(data, color) {
  console.log(data, color);
}

第二种

function drawData(rawData) {
  var fillColors = '';
  var dataArray = [];
  //遍历数据并做出判断
  rawData.forEach(ele => {
    switch (true) {
      case (0 <= ele.length && ele.length < 21):
        fillColors = '#43bbff'; break;
      case (21 <= ele.length && ele.length < 51):
        fillColors = '#eaffd0'; break;
      case (51 <= ele.length && ele.length < 101):
        fillColors = '#fce38a'; break;
      case (ele.length > 100):;
        fillColors = '#f38181'; break;
      default: fillColors = '#43bbff';
    }
    ele.fillColors = fillColors;
    //将数据放入数组中
    dataArray.push(ele);
  })
  doSomething(dataArray);
}

function doSomething(data) {
  data.forEach( ele => {
    console.log(ele. ele.fillColors);
  });
}

这两种方式在运行、代码规范、健壮性等这些方面有什么差异吗,或者最优的是那种呢?

阅读 1.4k
1 个回答

递归的方式性能更佳

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题