问题
This works fine if I sum numbers in JavaScript in an Array. But when I ask their input from User then they are printed as if the numbers are in string. Kindly help me in finding the flaw in my code.
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);
回答1:
To convert all values to number just do +tArr[w]
then sum it. The +tArr[w]
will coerce each value into a number instead of a string and hence will sum it instead of concatenating it.
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);
回答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+" ");
来源:https://stackoverflow.com/questions/52011567/prompt-user-to-input-numbers-in-array-and-then-sum-it-using-javascript