重构两个相同的函数,这些函数适用于不同的HTML标记

时间:2017-08-30 00:17:16

标签: javascript html algorithm loops refactoring

我有两个相同的函数,除了一个有一个循环,它将颜色改变为一组html td标签,另一个函数将颜色改变为另一组td html标签。他们是:

for (var i = 0; i < medHardSquares.length; i++)
for (var i = 0; i < easySquares.length; i++)

有没有办法传递参数并让一个函数根据发送的参数处理标记?我可以这样做:

 for (var i = 0; i < arg.length; i++)

1 个答案:

答案 0 :(得分:2)

是的,如果更改颜色的过程真的相同,并且变量的结构相同,即HTMLCollection / td元素数组,只需将td集合传递给函数

function changeColors(squares){
  for (var i = 0; i < squares.length; i++){
     squares[i].style.backgroundColor = whateveColor;
  }
}

changeColors(medHardSquares);
changeColors(easySquares);