JS 无法读取属性“长度"未定义的 [英] JS Cannot read property "length" of undefined

查看:74
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆