私はコーディングの練習をしていて、この関数で困惑しています。私が作成しようとしている関数は文字列を取り、各単語の繰り返し数を記録することです。問題は、myObject.key = valueを使用してオブジェクトに追加しようとしたときです。varカウントを渡すと、が更新されていても、myObjectに入れられているカウントはまだ0であるです。'count'変数を使用してオブジェクトに追加するとき、var 'count'はまだ0です。
function countWords(string) {
var myArray = string.split(" ");
var myObject = {};
for (var i=0; i<myArray.length; i++) {
var currentWord = myArray[i];
//var count2 = 0;
var count = 0;
for (var j=i+1; j<myArray.length; j++) {
var nextWord = myArray[j];
console.log(currentWord + ' and a ' + nextWord)
console.log('countBefore: '+count)
if (currentWord===nextWord) {
count += 1;
}
console.log('countAfter: '+count)
}//for loop2
console.log('countOutside: '+count)
myObject[currentWord] = count;
}// for loop
return myObject;
}
//console.log(countWords('blah blah the the the he she be'));
console.log(countWords('blah blah the the the she'));
print文のいくつかは、おそらく不要ですが、ので、私はそれを左に理解することが有用であろう。
おかげで、あなたは追加if文を拡張できます。
は、ここではいくつかのコメントをクリーンアップ作業フィドルです。 0でない場合、またはcountが以前に記録されたカウントよりも大きい場合は、myObjectに追加しますか? – jaysonder
'!myObject [currentWord]'は、まだそのインデックスを定義していない場合に処理します。あなたが持っていない場合は、値を保管してください。お持ちの場合は、それが高い場合にのみ保管してください。しかし、おそらく '!myObject [currentWord]'だけでうまくいくでしょう。 – StephenTG