字符串上循环JavaScript的基础

字符串上循环JavaScript的基础,javascript,for-loop,Javascript,For Loop,这件事已经折磨了我一个小时了。我尝试在字符串上执行一个简单的for循环,并返回当前字符和下一个字符 var mystring = "abcdef"; for (x in mystring) { if (mystring[x + 1]) { console.log(x + ": " + mystring[x] + mystring[x + 1]); } else { console.log("You've reached the end of the s

这件事已经折磨了我一个小时了。我尝试在字符串上执行一个简单的for循环,并返回当前字符和下一个字符

var mystring = "abcdef";

for (x in mystring) {
   if (mystring[x + 1]) {
      console.log(x + ": " + mystring[x] + mystring[x + 1]);
   }
   else {
      console.log("You've reached the end of the string");
   }
}

在循环的每次迭代中,“mystring[x+1]”都是false。虽然我希望字符串的前五个字符都是这样。这是怎么回事?关于JavaScript有什么我不明白的吗?

for in
用于循环对象的可枚举属性的名称。属性名称始终为字符串*<代码>字符串+数字使用串联方式生成字符串(例如,
“1”+1
“11”
,而不是
2

因此,如果您首先将属性名称转换为数字,则它可能主要起作用:

x = +x; // Convert to number
if (mystring[x + 1]) {
…但我会用

for (x = 0; x < mystring.length; ++x) {


应报告滥用for..in..的情况,非常感谢!非常明显的事情。我想我只是需要另一双眼睛@用户3892126:我不认为这是显而易见的。:-)玩得高兴