Javascript - 字符串 .split 后未定义的数组值

Javascript - Undefined array value after string .split

我想检查一个字符串是否是回文,但我在反转字符串时遇到了问题。我知道 Javascript 中有很多关于回文的问题,但我想在路上找到它,但我仍然找不到这些问题的解决方案。

代码

function reverse(string){
  var str = string;
  var split = str.split("");
  var newStr= "";

  for(var i=split.length; i>=0; i--){
     newStr += split[i];
  }

  console.log(newStr); 
}

var str= 'blue';

reverse(str);

结果

"undefinedeulb"

问题

正如我们所见,结果是字符串开头的未定义值。 我用 PHP 脚本测试了这段代码,它工作正常。这怎么会是 Javascript 的问题?以及如何摆脱它?

数组的索引以0开头,例如

var arr = ["a", "b", "c", "d", "e"];

最后一个是arr[4] // "e"

但是 arr.length 是 5, 所以 arr[5] 是 undefined.

所以 arr[arr.length] 总是 undefined!

在您的示例中,第一次迭代 i 等于 split.lengthundefined,因此请尝试

for(var i = split.length - 1; i >= 0; i--).

split.length 等于 4,但是因为数组是从零开始索引的,所以您需要从 3 开始向下移动到零。

function reverse(string){
  var str = string;
  var split = str.split("");
  var newStr= "";

  for(var i = split.length -1; i >= 0; i--){
     newStr += split[i]; console.log(i);
  }

  console.log(newStr); 
}

var str= 'blue';

reverse(str);