Прежде всего, я изучаю JS около 2-3 часов.Я потерял след.Сейчас 5 утра.Я на хакатоне и пытаюсь написать свое Java-приложение как веб-приложение.У меня 7 часов.Любая помощь будет принята с благодарностью.Я также знаю, что Eval - ужасная идея.Тем не менее, сейчас это самая легкая вещь для моей цели.При этом:
отредактируйте для ясности Итак, по сути, у меня есть небольшая игра в обучающий код в стиле палача: у меня есть библиотека очень коротких, не глючных фрагментов кода.Программа вводит ошибки (в основном, пропуски) в код и отображает код ошибки.Затем игрок пытается либо исправить код, либо, если он выберет, написать другой фрагмент, который отражает ожидаемый результат отображаемого глючного кода.Они вводят свой ответ в текстовой области, а затем программа сравнивает результаты выполнения обоих фрагментов кода (ошибочный фрагмент и предоставленный пользователем фрагмент).Пользователь выигрывает, если выходы совпадают.
Может быть, есть способ сравнить результат с другой переменной, содержащей другой eval?
как в:
editдля ясности Логика следующего фрагмента кода:
Существует переменная result, которую я пытаюсь использовать для ссылки на результат вызова eval () значения (возможно, с ошибочным кодом).фрагмент) в области ввода (game.input).Массив goodCode содержит хороший код;т.е. не глючный код.Я хочу вызвать eval () для обоих фрагментов кода (один из goodCode и один из game.input) и сравнить результаты их выполнения.если их выполнения одинаковы, программа выдаст успешное выполнение и сообщение с надписью «победитель».
goodCode = new Array("document.write('<b>Hello World</b>');")
var goodResult = eval(goodCode[0])
function executeJS()
{
var game = document.forms['game'];
var result = eval(game.input.value);
var answer = eval(goodCode[0]);
if (result === goodResult)
{
game.execute.value = result;
document.write("winner!")
}
}
<head>
<body>
<form name="game">
<textarea type=text name="input" rows="10" cols="30" value=""></textarea><br>
<input type="button" value="guess" onclick="executeJS();"
</form>
</body>
</head>
Я уверен, что моя терминология действительно не соответствует моему объяснению.Извини за это.Любая помощь будет оценена.