私は数学ゲームを作成している最中で、ランダムに選択された配列(by var randomProblem
)の文字列を式に変換できないというこの問題で立ち往生しています。ユーザーが回答できるように式全体を画面に表示したいので、式は文字列のままにする必要があります。によって選択された配列を文字列化してからvar randomProblem
、引用符を削除して式に変換しようとしましたが、機能しませんでした。
私の現在のコードでvar randomProblem
は、からランダムな配列を選択しvar problems
ます。次に、の内容はvar randomProblem
を使用して文字列に変換JSON.stringify()
され、と呼ばれる変数に格納されprocessProblem
ます。最後に、の内容をvar processProblem
コンソールに記録し、二重引用符を削除して、結果がどうなるかを確認しました。
たとえば、ランダム配列としてrandomProblem
選択さ["6-18"]
れ、JSON.stringifyとその引用符の削除を実行した場合、結果はの[16-8]
代わりになり[8]
ます。
(function playGame() {
var problems = [
["6 * 6 - 27"],
["1 * 10 - 1"],
["2 + 5 * 1"],
["5 * 10 - 42"],
["8 + 6 - 7"],
["(1 - 1) * 20"],
["4 * 3 - 6"],
["98 - 95"],
["16 - 8"],
["(5 + 9) / 2"],
["(21 + 19) / 5"],
["(4 - 3) * 7"],
["(7 - 1) / 2"],
["(8 + 2) / 5"]
];
//var problem = document.getElementById('problem');
var randomProblem = problems[Math.floor(Math.random()*problems.length)];
//var displayProblem = problem.innerHTML += randomProblem;
var processProblem = JSON.stringify(randomProblem);
console.log(processProblem.replace(/"/g, ""));
})();
これは期待どおりに機能します。
(function playGame() {
var problems = [
["6 * 6 - 27"],
["1 * 10 - 1"],
["2 + 5 * 1"],
["5 * 10 - 42"],
["8 + 6 - 7"],
["(1 - 1) * 20"],
["4 * 3 - 6"],
["98 - 95"],
["16 - 8"],
["(5 + 9) / 2"],
["(21 + 19) / 5"],
["(4 - 3) * 7"],
["(7 - 1) / 2"],
["(8 + 2) / 5"]
];
//var problem = document.getElementById('problem');
var randomProblem = problems[Math.floor(Math.random()*problems.length)];
//var displayProblem = problem.innerHTML += randomProblem;
var processProblem = JSON.stringify(randomProblem).replace(/"/g, "");
console.log(processProblem);
console.log(eval(processProblem)[0]);
})();
randomProblem
評価結果は配列であるため、文字列化されたコンテンツを評価し、最初の値(インデックス0)を取得します
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加