我正在尝试创建一个项目,用于计算输入到文本字段(以空格分隔)的一系列数字的总和和平均值。因此,在单个文本框中,用户将输入“1 2 3”,应该发生的是我接受输入,用空格分隔数字并将数字放入数组中。然后添加数组中的元素以返回总和并计算平均值。但是我坚持添加部分因为我在运行它时在控制台中不断收到错误“Uncaught TypeError:无法读取未定义的属性'0'。我已经找到了其他有过这个问题的人,但他们似乎正在做其他功能,他们的修复似乎对我不起作用。我在这里附上了我的代码。
我尝试了javascript第13行的内容,我将Number.numbers[i]
更改为numbers[i].value
并将输出更改为NaN。我很困惑,并希望得到任何帮助。谢谢!
答案 0 :(得分:0)
要将字符串解析为数字,您需要执行以下操作:
号码(您的号码)。
所以你必须这样做:
sum += Number(numbers[i]);
答案 1 :(得分:0)
您的问题是您不会更改输入值的类型。 当您从DOM元素获取值时,您将获得字符串,但是对于计算平均值,您需要键入" number"。使用typeof运算符检查您的值。 或者用我的例子来解决你的问题
let input = document.querySelector("#inputId");
// now your numbers is array from values with type "number" after
parseInt
let numbers = input.value.split(" ").map((n) => parseInt(n, 10));
let sum = numbers.reduce((sum, number) => sum + number, 0);
let average = sum / numbers.length;