関数本体内の for of ループが、従来の for ループが行っている期待される出力を提供しないのはなぜですか? for ループの el は、for ループの iterable[i] と同じではないようです。
var uniqueInOrder = function(iterable){
let unique = [];
for(let el of iterable){
let cur = el;
let next = el + 1;
if(cur !== next){
unique.push(cur)
}
}
return unique;
}
uniqueInOrder('AAAABBBCCDAABBB') // unexpected output
// Returns expected output
var uniqueInOrder = function(iterable){
let unique = [];
for(var i = 0; i < iterable.length; i++){
let cur = iterable[i];
let next = iterable[i + 1];
if(cur !== next){
unique.push(cur)
}
}
return unique;
}
uniqueInOrder('AAAABBBCCDAABBB') // ----> ["A", "B", "C", "D", "A", "B"]