JS 无法读取属性“长度"未定义的 [英] JS Cannot read property "length" of undefined
本文介绍了JS 无法读取属性“长度"未定义的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用给定的字符串创建一个对象,其中每个单词都有一个表示其长度的属性.
I'm trying to create an object using a given string where each word has a property stating its length.
var strings = {};
function findLongestWord(str) {
var splitStr = str.split(" ");
for (var i = 0; i <= str.length; i++){
strings[splitStr[i]] = splitStr[i].length;
}
return strings;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
我最终得到:
"TypeError": Cannot read property "length" of undefined.
如果我用 splitStr[0].length 替换 splitStr[i].length,代码运行正常,但当然给我对象中每个单词的相同数字.
If I were to replace splitStr[i].length with splitStr[0].length, the code runs properly, but of course giving me the same number for each word in the object.
感谢任何帮助,谢谢.
推荐答案
您正在循环错误的数组.你应该使用 i <splitStr.length
.
you are looping over wrong array. you should use i < splitStr.length
.
var strings = {};
function findLongestWord(str) {
var splitStr = str.split(" ");
for (var i = 0; i < splitStr.length; i++){
strings[splitStr[i]] = splitStr[i].length;
}
return strings;
}
这篇关于JS 无法读取属性“长度"未定义的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文