+または - を使用せずに2つの整数を追加するはずのアルゴリズムで作業しています。だから、私は2つの引数をとり、配列でスタックし、forEachを適用し、カウンタを1ずつインクリメントして、各要素が0になるまでカウントした。whileループは無限ループです - オペランドなしで追加しようとしています
function test(a, b){
var array = [], counter = 0;
array.push(a,b);
array.forEach(function(element){
while (element > 0) {
counter ++;
element --;
}
})
return counter
}
これは問題なく動作します。しかし、私がleetCodeを通してそれを実行したとき、テストケースの1つに負の数がありました。私は誤ってすべての症例が陽性であると仮定した。私はこのようなアルゴリズムを書き直し、ネガを説明しました。
function test(a, b){
var array = [], counter = 0;
array.push(a,b);
console.log(array);
array.forEach(function(element){
if (element > 0){
while (element > 0) {
counter ++;
element --;
}
} else if (element < 0) {
while (element < 0);
counter --;
element ++;
}
})
return counter
}
これは紙では問題なく動作しますが、端末で実行するとループが発生します。少なくとも私はそれがそうだと思う。エラーメッセージは表示されず、私は思いつくことのできるあらゆる場所にすべての変数を記録していました。コンソールのログ番号を無限にストリーミングする代わりに、無意味なループを誤って作成したときにカーソルがちょうどそこに座ります私がCtrl + Cを押すまで。
この奇妙な動作の原因は何ですか?私は
console.log(text(1,-1))
でそれをテストするとき、私は0のリターンを期待する、
どうやらそれは他のすべての後、不十分置きブラケットとタイプミスに沿って働いていました。ありがとう!
それはあなたが私のために期待どおりに実行され、私は0を得る。 – Chris
奇妙な。多分私のコンソールです。 – nwimmer123
また、書かれているようにleetCodeにタイムアウトするので、何かが間違っていなければなりません。 – nwimmer123