我正在尝试使用给定的字符串创建一个对象,其中每个单词都有一个声明其长度的属性。
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,代码运行正常,但当然为对象中的每个单词给出相同的数字。
感谢任何帮助,谢谢。
答案 0 :(得分:2)
你正在循环错误的数组。你应该使用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;
}