【问题标题】:Prompt user to Input Numbers in Array and then Sum it using JavaScript提示用户输入数组中的数字,然后使用 JavaScript 求和
【发布时间】:2018-08-24 20:52:34
【问题描述】:

如果我将 JavaScript 中的数字加到一个数组中,这会很好。但是当我从用户那里询问他们的输入时,他们会被打印出来,就好像数字是字符串一样。请帮助我找出我的代码中的缺陷。

var tArr = [];

for(var f = 1;f<=4;f++)                                                           
{   
    // tArr.push(f);  
    var z = prompt("Enter numbers for Sum");   
    tArr.push(z);                              

}   
var r = parseInt(tArr);   
alert(tArr);       

var summ = 0;      
for(var w = 0; w< tArr.length; w++)     
{   
    summ += tArr[w];   
}   
console.log(summ);

【问题讨论】:

    标签: javascript arrays input sum


    【解决方案1】:

    要将所有值转换为数字,只需执行+tArr[w] 然后求和。 +tArr[w] 会将每个值强制转换为数字而不是字符串,因此会将其相加而不是连接它。

    var tArr = [];
    
    for(var f = 1;f<=4;f++)                                                           
    {   
        // tArr.push(f);
        var z = prompt("Enter numbers for Sum");   
        tArr.push(z);                              
    
    }   
    //var r = parseInt(tArr); This line is not doing anything.
    alert(tArr);       
    
    var summ = 0;      
    for(var w = 0; w< tArr.length; w++)     
    {   
        summ += +tArr[w];   
    }   
    console.log(summ);

    【讨论】:

    • 但是为什么它们被当作字符串呢?
    • 因为window.prompt()返回一个字符串,它被添加到数组tArr中。在迭代字符串时,通过在其前面添加 + 将其转换为数字。 developer.mozilla.org/en-US/docs/Web/API/Window/prompt
    • 好吧..!非常感谢 Amardeep!
    【解决方案2】:

    var sum=0;
    var len=(Number(prompt("Enter len of array")));
    var ar=new Array();
    
    for(var i=0;i<len;i++){
      ar.push(Number(prompt("Enter array elements:"+ar[i])));
    }
    for(var i=0;i<len;i++){
      sum+=ar[i];
    }
    
    document.write(sum+" ");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多