在javascript的for循环中设置数组's字符串元素的长度为一个变量

setting the length of an array's string element to a variable in a for loop in javascript

本文关键字:元素 变量 一个 字符串 循环 for javascript 设置 数组      更新时间:2023-09-26

我有这个代码。由于某种原因,我得到了错误:Uncaught TypeError: Cannot read property 'length' of undefined。我似乎不明白为什么。

function findShort(s) {
  var c = s.split(' ');
  var l = c[0].length;
  var wordlength;
  for (var i = 1; c.length; i++) {
    console.log(c[i].length);
    wordlength = c[i].length;
    if (l < wordlength) {
      l = wordlength;
    }
  }
  return l;
}
console.log(findShort("hello dog cat 12 asdsad wuidhuiwqhd"));

错误出现在wordlength = c[i].length;

当我console.log它时,它显示数组中每个字符串的长度。然而,当我试图存储这个长度时,它说它是未定义的

你需要改变这一行

for ( var i = 1; c.length; i++ ) {

for ( var i = 1; i<c.length; i++ ) {

for循环的第二个组件是布尔条件,它在每一轮循环中检查以确定是否应该继续循环。通过放置c.length,您将给出一个常量值,该值将使循环永远不运行(如果c.length为0),或者永远运行(如果c.length不为0)。

你也应该小心下面的行:

var l = c[0].length;

这也可能导致问题,因为不能保证c至少有一个元素