これはコードワードの課題の1つで、文字列を取り、配列を返す関数を書くことになっています。連続する同一の要素。また、注文は変更しないでください。JavaScriptを使用して文字列内の連続した文字をフィルタリングする必要があります
たとえば、文字列"hhhhheeeelllloooooohhheeeyyy"
を渡すと、関数はarray = ["h","e","l","o","h","e","y"]
を返します。
これは私のコードです。私は文字列を渡す場合、私はj
の値が増加し続けるためにそれを意図したとおり
var uniqueInOrder=function(iterable){
//your code here - remember iterable can be a string or an array
var unique = [];
for(var i = 0; i < iterable.length; i++) {
unique.push(iterable[i]);
}
for(var j = 0, k = 1; j < unique.length; j++, k = j + 1){
if(unique[j] === unique[k]){
unique.splice(k,1);
}
}
return unique;
}
ので、このような"hhhhheeeeeellllloooo"
としては、それゆえ私はすべて同一の要素を除外することができない、動作しません。
私はunique[j] === unique[k]
の値がゼロになるたびに、そしてそうでない場合は、それらがすると思われるようにロジックが調整されるように試みました。
これは私に無限ループをもたらしました。
私はあなたの助けが必要です。あなたが唯一のユニークで最後の文字に対する反復可能なの現在のインデックスを比較する必要が
データのコピーを1つだけ使用してみてください。 2つのコピーを比較しようとしていると指数を真っ直ぐに保つことは、問題を複雑にしています。追跡する必要があるのは、現在の値と次または前の値のいずれかです。現在の値がそれらのいずれかと等しい場合は、それが重複しているため1を破棄します。また、正規表現を調べることもできます。彼らはこのタイプの置き換えを1行で行うことができます。正規表現を使用し始めると、永遠にその使用法が見つかるでしょう。 – LinuxDisciple
@LinuxDiscipleこんにちは、次の値または前の値を追跡するという考えが思い浮かびましたが、そのためのコードを思いつくことはできません。私はそれをもう一度試してみるでしょう。まだそれが得られなければ、私はあなたに手を差し伸べるでしょう。ありがとうございました。 –