2017-05-09 36 views
0

在我的情况下,我发现两个不同函数中的2个不同和的值。现在我需要做的是减去这两个值,但我不确定是否可以从两个不同的功能中这样做。什么是最好的方式来执行此操作?如何添加两个不同功能的值?

function networth() 
{ 
    var totNoA = document.getElementsByName("number4[]").length; 
    var sum = 0; 

    for(var i=0; i<totNoA; i++) 
    { 
     sum +=parseInt(document.getElementsByName("number4[]")[i].value); 
     console.log(sum); 
    } 
} 

这里我有变量'sum'有一个值。

function networth1() 
{ 
    var totNoL = document.getElementsByName("number5[]").length; 
    var sumL = 0; 

    for(var x=0; x<totNoL; x++) 
    { 
     sumL +=parseInt(document.getElementsByName("number5[]")[x].value); 
     console.log(sumL); 

     sum - sumL = total_sum; 
     document.Net_worth.total1.value = total_sum; 
    } 
} 

我想减去sum - sumL但我没有做正确的。有什么想法吗?

+0

你应该使用'parseInt函数(X,10)',而不是'parseInt函数(X)'。 – Pang

+0

您的预期产出是多少?你的实际产出是多少? [MCVE] –

回答

0

您也可以返回总和从这样的networth功能:

function networth() 
{ 
    var totNoA = document.getElementsByName("number4[]").length; 
    var sum = 0; 

    for(var i=0; i<totNoA; i++) 
    { 
     sum +=parseInt(document.getElementsByName("number4[]")[i].value); 
     console.log(sum); 
    } 
    return sum; 
} 

然后你就可以使用它的价值在你networth1函数,如下所示:

function networth1() 
{ 
    var totNoL = document.getElementsByName("number5[]").length; 
    var sumL = 0; 

    for(var x=0; x<totNoL; x++) 
    { 
     sumL +=parseInt(document.getElementsByName("number5[]")[x].value); 
     console.log(sumL);  
    } 
     var sum = networth(); 
     total_sum = sum - sumL; 
     document.Net_worth.total1.value = total_sum; 
} 

您不需要计算循环内的差异,因为您只需要最终的差异。你也可以按照其他人的建议。使总和sumL全局变量,而不是使他们本地。

+0

它的工作。所以,当你返回一个值并且想要稍后调用它时,你只需将该值赋给它的函数? (var sum = networth();)这是非常有用的。 –

0

您必须在全局范围内定义sumsumL。移动var sum = 0var sumL = 0以外的功能,并使用sum-sumL获得它们的区别。

0

这些函数返回值的总和,写,执行使用这些函数返回 注值相减多了一个功能:写入功能,小的N自我解释的它提高了代码的可维护性

+0

那么你是否建议只按照它们的方式离开这两个函数并创建另一个减去sum - sumL的函数? –

+0

是移动代码(total_sum =总和 - SUML; document.Net_worth.total1.value = total_sum)到新的函数 和上述功能应该返回总和和SUML值 –

0

在您的代码中,您在DOM中进行了两次搜索,每个函数中都有document.getElementsByName,但这不是必需的。

简化自己的代码,它应该是这样的:

function netWorth(query) { 
    var elements = document.getElementsByName(query); 
    var sum = 0; 

    for(var i = 0; i < elements.length; i++) { 
     sum += parseInt(elements[i].value); 
    } 

    return sum; 
} 

var sum = netWorth("number4[]"); 
var sumL = netWorth("number5[]"); 

document.Net_worth.total1.value = (sum - sumL); 
相关问题