偶数と奇数判定のアルゴリズム#3
Q&A
Closed
解決したいこと
質問1と質問2を参考にコードをしました
問題を1つずつ改善していきました
そして、入力すると1-884*84*8
と出力がされる
デバッグで確認すると18*8*4*8*4*8
と出力したいですが
*
と-
の挿入にミスがあるので改善したいです
発生している問題・エラー
TypeError: result.push is not a function
at StringChallenge (/tmp/732312299/main.js:21:14)
at Object.<anonymous> (/tmp/732312299/main.js:35:13)
at Module._compile (node:internal/modules/cjs/loader:1254:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
at Module.load (node:internal/modules/cjs/loader:1117:32)
at Module._load (node:internal/modules/cjs/loader:958:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47
または、問題・エラーが起きている画像をここにドラッグアンドドロップ
該当するソースコード
function StringChallenge(num) {
//数字じゃなくて文字列で出力しなければならい
let result = "";
num = num.toString();
for (let i = 0; i < num.length - 1; i++) {
const oddnumber = num[i]
const evennumber = num[i + 1]
//0は無視
//if文の書き方にミスがある0の処理ではなく偶数、奇数の処理にしてみます
//偶数同士に'*'を入れる条件式 等価演算子または厳密演算子でコードを作成する
if (oddnumber % 2 === 0 && oddnumber % 2 === 0) {
//文字列にキャストされているから+=ではない
result.push(oddnumber, '*');
}
//奇数同士で'-'を入れる条件式
else if (evennumber % 2 === 1 && evennumber % 2 === 1) {
//文字列にキャストされているから+=ではない
result.push(evennumber, '-');
}
else {
;
}
//入力した文字列の数字を配列するための処理が必要
result.push(num[num.length - 1]);
}
// code goes here
//最後は文字列で連結する
return result.join('');
}
// keep this function call here
console.log(StringChallenge(readline()));
自分で試したこと
ここに問題・エラーに対して試したことを記載してください。
return result.join('');
を'return result'に変更してみました
result.push(oddnumber, '*');
result.push(evennumber, '-');
をresult += oddnumber + '*';
result += evennumber + ' -';
に変更してみました
上記の2つでは改善できませんでした
何度もすみません
よろしくお願いします!