-1
以下のコードを使用して、シーケンス内の最初の繰り返し文字を見つけようとしています。私がブラウザでコードを実行し、コンソールでletterArray.forEach関数で停止すると、コンソールログエラーはforEachへの入力が未定義であることを示します。しかし、それは私のように思えるでしょう。各自がletterArrayから入力を1つずつ取り出し、それらが等しいかどうかを見て結果を返します。誰もがなぜ私のforEachループの傾きが私のletterArrayからの入力を読み取るかを知っている?次のように必要なあなたのコードに最小限の変更であるForEachに渡される値は、定義されていません。
function firstNotRepeatingCharacter(string) {
var letterArray = [];
letterArray['a'] = 0;
letterArray['b'] = 0;
letterArray['c'] = 0;
letterArray['d'] = 0;
letterArray['e'] = 0;
letterArray['f'] = 0;
letterArray['g'] = 0;
letterArray['h'] = 0;
letterArray['i'] = 0;
letterArray['j'] = 0;
letterArray['k'] = 0;
letterArray['l'] = 0;
letterArray['m'] = 0;
letterArray['n'] = 0;
letterArray['o'] = 0;
letterArray['p'] = 0;
letterArray['q'] = 0;
letterArray['r'] = 0;
letterArray['s'] = 0;
letterArray['t'] = 0;
letterArray['u'] = 0;
letterArray['v'] = 0;
letterArray['w'] = 0;
letterArray['x'] = 0;
letterArray['y'] = 0;
letterArray['z'] = 0;
for(var letter of string) {
letterArray[letter] = letterArray[letter] + 1;
}
letterArray.forEach(function(value, index, thearay) {
if (value == 1) {
console.log(index);
}
});
}
var tester = "abacabad";
firstNotRepeatingCharacter(tester);
は、配列のキーを命名することはできませんはるかに簡単になります。 – Nick
あなたは 'of'ではなく' string in string'を意味すると思います。 – Shadow
あなたはオブジェクトのように配列を操作しようとしています –