JS无法读取未定义

时间:2017-07-05 02:12:39

标签: javascript object properties undefined typeerror

我正在尝试使用给定的字符串创建一个对象,其中每个单词都有一个声明其长度的属性。

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,代码运行正常,但当然为对象中的每个单词给出相同的数字。

感谢任何帮助,谢谢。

1 个答案:

答案 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;
}