"Uncaught TypeError: Cannot read property '0' of undefined" javascript array
"Uncaught TypeError: Cannot read property '0' of undefined" javascript array
我正在尝试创建一个项目来计算输入到文本字段(以空格分隔)的一系列数字的总和和平均值。因此,在单个文本框中,用户将输入“1 2 3”,应该发生的是我接受输入,用空格分隔数字并将数字放入数组中。然后将数组中的元素添加到 return 总和并计算平均值。但是,当我 运行 时,我一直在控制台中收到错误 "Uncaught TypeError: Cannot read property '0' of undefined",因此我卡在了添加部分。我查过其他遇到此问题的人,但他们似乎在执行其他功能,而且他们的修复程序似乎对我不起作用。我在此处的图片中附上了我的代码。
我已经尝试过 javascript 的第 13 行,我将 Number.numbers[i]
更改为 numbers[i].value
并将输出更改为 NaN。我很困,很感激任何可用的帮助。谢谢!
要将字符串解析为数字,您需要这样做:
号码(你的号码)。
所以你必须这样做:
sum += Number(numbers[i]);
您的问题是您没有更改输入值的类型。
当您从 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;
我正在尝试创建一个项目来计算输入到文本字段(以空格分隔)的一系列数字的总和和平均值。因此,在单个文本框中,用户将输入“1 2 3”,应该发生的是我接受输入,用空格分隔数字并将数字放入数组中。然后将数组中的元素添加到 return 总和并计算平均值。但是,当我 运行 时,我一直在控制台中收到错误 "Uncaught TypeError: Cannot read property '0' of undefined",因此我卡在了添加部分。我查过其他遇到此问题的人,但他们似乎在执行其他功能,而且他们的修复程序似乎对我不起作用。我在此处的图片中附上了我的代码。
我已经尝试过 javascript 的第 13 行,我将 Number.numbers[i]
更改为 numbers[i].value
并将输出更改为 NaN。我很困,很感激任何可用的帮助。谢谢!
要将字符串解析为数字,您需要这样做:
号码(你的号码)。
所以你必须这样做:
sum += Number(numbers[i]);
您的问题是您没有更改输入值的类型。 当您从 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;