2016-06-25 1 views
0

Привет, У меня есть некоторые функции JavaScript в моем проекте. Эти функции в основном устанавливают значения тега html как истинные или ложные. Являются ли эти операции стандартной практикой программирования. Как реорганизовать такие функции?Должны ли мы объединить две функции в JavaScript, если они выполняют одну и ту же задачу?

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 + '" />'; 
 

 
    }

Что оптимизированная решение.

Заранее спасибо.

+1

Подсказка: Одна из этих функций с аргументом – charlietfl

ответ

0

Ну, это зависит от вас, чтобы несколько функций выполняли «ту же» задачу или преломляли их в одну функцию. Цель слияния - помочь вам упростить ведение кода в долгосрочной перспективе и сделать ваш код как-то более чистым.

В случае слияния коды, было бы что-то вроде этого:

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); 

Надеется, что это помогает.

0

Как насчет:

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); }