Причина в том, что i+1
не будет прибавлять значение, как вы ожидали, значение будет 01,11,21,31
, это причина, вам нужно использовать parseInt()
, чтобы сделать это,
let str = 'sSAo'
console.log(str[0], str[3]) // all good
for (let i in str) {
// why str[i+1] is undefined ???
console.log(i, str[i], str[parseInt(i)+1]);//but the last one will still be undefined
}