如果JavaScript中的两个函数执行相同的任务,我们应该合并它们吗?

Should we merge two functions in JavaScript if they perform the same task?

本文关键字:我们 任务 合并 JavaScript 执行 函数 两个 如果      更新时间:2023-09-26

嗨,我有一些JavaScript函数在我的项目。这些函数主要是将html标记值设置为true或false。这些操作是否符合标准编程实践?如何重构这样的函数?

function first(){
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
         question = "false";    
      
            firstStr = firstStr + '<flag isFlagged="' + question + '" />';
    }
    function second() {  
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
        question = "false";    
      
            secondStr = secondStr + '<flag isFlagged="' + question + '" />';
    }

我的问题是我是否应该合并它并将函数分配给一个变量并返回这样的值

var resultValue(){
  if(myArray[questionIndex] ==1)
    return "true";
  else
    return "false";
}
function first(){
  var question = resultValue();     
            firstStr = firstStr + '<flag isFlagged="' + question + '" />';
    }
function second() {
  var question = resultValue();       
            secondStr = secondStr + '<flag isFlagged="' + question + '" />';
    }

最优解是什么

如何:

function result(str) {
  var resultValue = ""
  if (myArray[questionIndex] === 1)
    resultValue = "true";
  else
    resultValue = "false";    
  return str + '<flag isFlagged="' + str + '" />';
}

也可以定义一些别名:

function first() { firstStr = result(firstStr); }
function second() { secondStr = result(secondStr); }

好吧,这取决于你保持多个函数执行"相同"的任务或将它们折射到一个函数中。合并的目的是帮助您在长期运行中更容易地维护代码,并使您的代码更干净。

在合并代码的情况下,应该是这样的:

function func(str){
      if(myArray[questionIndex] ==1)
        var question = "true";
      else
         question = "false";    
            str = str + '<flag isFlagged="' + question + '" />';
return str;
    }

然后你可以像这样调用这个函数:

firstStr = func(firstStr);
secondStr = func(secondStr);