在业务中有遇到的问题,代码简化一下如下所示:
第一种
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);
});
}
这两种方式在运行、代码规范、健壮性等这些方面有什么差异吗,或者最优的是那种呢?
递归的方式性能更佳