for loop behavior "TypeError: Cannot read property 'length' of undefined"
for loop behavior "TypeError: Cannot read property 'length' of undefined"
我在已经问过的此类问题的回复中找不到答案。
我不明白,为什么控制台会抛出这个错误 "TypeError: Cannot read 属性 'length' of undefined" ,当我的 for-Loop 包含此条件时
for (let i = 0; i <= res.length; i++) {
arr.push(res[i].length);
}
没有等号 就可以了。
我不明白为什么。我认为设置 i=1 会起作用。但事实并非如此。
谁能解释一下,为什么在给定条件
时我会收到错误消息
i>**=**res.length; (with equal sign)
完整代码
function findLongestWordLength(str) {
var arr = [];
var res = str.split(" ");
for (let i = 1; i < res.length; i++) {
arr.push(res[i].length);
}
return Math.max(...arr);
}
findLongestWordLength("May the force be with you");
谢谢,新年快乐。
基本上 Array
的索引是从零开始的。
如果循环到长度,则最后一个索引为 1。
array = [1, 2, 3] // length === 3
如果循环直到 3
,
array[3]
你得到 undefined
,或者如果元素应该是一个对象,那么你会得到上面提到的错误。
数组在 JavaScript 中基于零。
例如:如果数组 var arr = [10,20,30]
中有 3 个数字,那么这些数字的索引将为 0 1, 2
即您可以使用 arr[0]
访问 10
, 20
与 arr[1]
和 30
与 arr[2]
。
请注意,此数组的长度将为 3。因此,当您在循环中从 0 迭代到 length 时,您多了一个索引,因此您得到 undefined
。在循环中从 0 to <= res.length - 1
或 0 to < res
开始。
因为数组的下标总是长度-1.
可以说。假设你有长度为 2
的数组
const ar = ["a", "b"]
如果你检查这个数组的长度,它会显示 2 但这个数组的最大索引只有 1。
所以当你遍历数组的长度时,它上升到索引 2,res[2]
是 undefined
我在已经问过的此类问题的回复中找不到答案。 我不明白,为什么控制台会抛出这个错误 "TypeError: Cannot read 属性 'length' of undefined" ,当我的 for-Loop 包含此条件时
for (let i = 0; i <= res.length; i++) {
arr.push(res[i].length);
}
没有等号 就可以了。
我不明白为什么。我认为设置 i=1 会起作用。但事实并非如此。 谁能解释一下,为什么在给定条件
时我会收到错误消息i>**=**res.length; (with equal sign)
完整代码
function findLongestWordLength(str) {
var arr = [];
var res = str.split(" ");
for (let i = 1; i < res.length; i++) {
arr.push(res[i].length);
}
return Math.max(...arr);
}
findLongestWordLength("May the force be with you");
谢谢,新年快乐。
基本上 Array
的索引是从零开始的。
如果循环到长度,则最后一个索引为 1。
array = [1, 2, 3] // length === 3
如果循环直到 3
,
array[3]
你得到 undefined
,或者如果元素应该是一个对象,那么你会得到上面提到的错误。
数组在 JavaScript 中基于零。
例如:如果数组 var arr = [10,20,30]
中有 3 个数字,那么这些数字的索引将为 0 1, 2
即您可以使用 arr[0]
访问 10
, 20
与 arr[1]
和 30
与 arr[2]
。
请注意,此数组的长度将为 3。因此,当您在循环中从 0 迭代到 length 时,您多了一个索引,因此您得到 undefined
。在循环中从 0 to <= res.length - 1
或 0 to < res
开始。
因为数组的下标总是长度-1.
可以说。假设你有长度为 2
的数组const ar = ["a", "b"]
如果你检查这个数组的长度,它会显示 2 但这个数组的最大索引只有 1。
所以当你遍历数组的长度时,它上升到索引 2,res[2]
是 undefined