在数组中添加数字。得到奇怪的输出。Javascript
我想要什么在数组中添加数字。得到奇怪的输出。Javascript,javascript,arrays,function,sum,Javascript,Arrays,Function,Sum,我想要什么 5,4,3,2,1 Sum: 054321 我正在尝试制作一个程序,用户将数字添加到数组中,程序计算这些数字的不同内容 当我调用sum(数组)时;使用预设数组,如var array=[5,4,3,2,1];求和工作正常,输出15,如预期。 但是,当我包含函数以获取数组的数字集时,输出的总和不是预设数组,而是054321 为了自己的理解,我想手动执行数组计算,而不是使用reduce() 我做错了什么?//函数对数组求和 5,4,3,2,1 Sum: 15 函数和(参数){ var合
5,4,3,2,1
Sum: 054321
我正在尝试制作一个程序,用户将数字添加到数组中,程序计算这些数字的不同内容
当我调用sum(数组)时;使用预设数组,如var array=[5,4,3,2,1];求和工作正常,输出15,如预期。但是,当我包含函数以获取数组的数字集时,输出的总和不是预设数组,而是054321 为了自己的理解,我想手动执行数组计算,而不是使用reduce() 我做错了什么?
//函数对数组求和
5,4,3,2,1
Sum: 15
函数和(参数){
var合计=0;
对于(i=0;i
//函数对数组求和
函数和(参数){
var合计=0;
对于(i=0;i
提示符中的值是字符串,这就是为什么“不按您的意愿添加”“在参数[i]之前添加加号”的原因,并且您的参数是正确的
//Function to Sum Array
function sum(params){
var total = 0 ;
for (i = 0; i < params.length; i++){
var temp = parseInt(params[i]);
total += temp;
}
return total;
}
var数组=[];
getNum();
document.write(数组);
写(“
Sum:+Sum(数组));
//函数求和数组
函数和(参数){
var合计=0;
对于(i=0;i
提示符中的值是字符串,这就是为什么“不按您的意愿添加”“在参数[i]之前添加加号”的原因,并且您的参数是正确的
//Function to Sum Array
function sum(params){
var total = 0 ;
for (i = 0; i < params.length; i++){
var temp = parseInt(params[i]);
total += temp;
}
return total;
}
var数组=[];
getNum();
document.write(数组);
写(“
Sum:+Sum(数组));
//函数求和数组
函数和(参数){
var合计=0;
对于(i=0;i
您的输入将作为字符串存储在数组中。您需要将该值转换为一个数字,才能正确进行求和
使用parseInt(设置为基数10)获得正确答案
var array = [];
getNum();
document.write(array);
document.write("<br>Sum: " + sum(array));
//Function to Sum Array
function sum(params){
var total = 0 ;
for (i = 0; i < params.length; i++){
total += +params[i]; //make the params[i] to be a number
}
return total;
}
//Function to get Numbers in Array
function getNum(){
var count = 0;
alert("Please enter 5 numbers");
while(count < 5) {
array[count] = prompt("Number " + (count + 1));
count++;
}
}
您的输入将作为字符串存储在数组中。您需要将该值转换为一个数字,才能正确进行求和 使用parseInt(设置为基数10)获得正确答案
var array = [];
getNum();
document.write(array);
document.write("<br>Sum: " + sum(array));
//Function to Sum Array
function sum(params){
var total = 0 ;
for (i = 0; i < params.length; i++){
total += +params[i]; //make the params[i] to be a number
}
return total;
}
//Function to get Numbers in Array
function getNum(){
var count = 0;
alert("Please enter 5 numbers");
while(count < 5) {
array[count] = prompt("Number " + (count + 1));
count++;
}
}
将提示值解析为整数-它将作为字符串添加,并与
+
符号连接:
total += parseInt(params[i],10);
要将编号转换为另一个选项,请执行以下操作:
请注意,结果是一个字符串。这意味着你有时应该
强制转换用户给定的值。例如,如果他的答案是
如果是数字,则应将值强制转换为数字。变数=
数字(window.prompt(“键入数字”)
将提示值解析为整数-它将作为字符串添加,并与
+
符号连接:
total += parseInt(params[i],10);
要将编号转换为另一个选项,请执行以下操作:
请注意,结果是一个字符串。这意味着你有时应该
强制转换用户给定的值。例如,如果他的答案是
如果是数字,则应将值强制转换为数字。变数=
数字(window.prompt(“键入数字”)
以下是一个单线解决方案:
array[count] = parseInt(prompt("Number " + (count + 1)));
以下是一个单线解决方案:
array[count] = parseInt(prompt("Number " + (count + 1)));
一切都一样,只需将用户输入解析为整数。这里的问题是,数字被视为字符串 如下所示修改求和函数:
function sum(params) {
return params.map(function(item) { return parseInt(item); }).sum()
}
//求和数组的函数
函数和(参数){
var合计=0;
对于(i=0;i
就这样,完成了。一切都一样,只需将用户输入解析为整数即可。这里的问题是,数字被视为字符串 如下所示修改求和函数:
function sum(params) {
return params.map(function(item) { return parseInt(item); }).sum()
}
//求和数组的函数
函数和(参数){
var合计=0;
对于(i=0;i
就这样,您完成了。您正在将输入数字保存到数组中作为字符串,因此sum函数正在进行字符串连接,您需要将
prompt()
的返回值解析为int
,然后再将其添加到数组中。您正在将输入数字保存到数组中作为字符串,因此,sum函数正在进行字符串连接,在将其添加到数组之前,需要将prompt()
的返回值解析为int
。在javascript中使用parseInt时,始终需要包含基数参数。JS将以0开头的数字(如09
)视为八进制,以0x
开头的数字视为十六进制parseInt(params[i],10)
。在javascript中使用parseInt时,始终希望包含基数参数。JS将以0开头的数字(如09
)视为八进制,以0x
开头的数字视为十六进制parseInt(参数[i],10)
。