开发者问题收集

当我向数组添加元素时,TypeError:无法读取未定义的属性“长度”

2017-03-12
299

我目前正在开发一个 javaScript 函数,该函数返回字符串数组中最长的字符串。当数组中有三个元素时,它可以正常工作。但是,如果我向数组中添加另一个元素,它会中断并给出错误

TypeError:无法读取未定义的属性“length”

这是我的代码:

function largest_string(string){
  for(var i = 0; i < string.length; i++){
    if(string[i].length > string[0].length){
      var temp = string[0];
        string[0] = string[i + 1];
        string[i+1] = temp
    }

  }
  return string[0];
}

console.log(largest_string(["one","onetwo","onetwothree","onetwothreefour" ]));
2个回答

要修复的是 string[i] 而不是 string[i + 1]

Steven Aguilar
2017-03-12
function largest_string(string){
  for(var i = 1; i < string.length; i++){
    if(string[i].length > string[0].length){
      var temp = string[0];
        string[0] = string[i];
        string[i] = temp
    }
  }
  return string[0];
}

console.log(largest_string(["one","onetwo","onetwothree","onetwothreefour" ]));
Tareq
2017-03-13