gpt4 book ai didi

javascript - 比较 javascript 中的两个 eval() 对象

转载 作者:行者123 更新时间:2023-12-02 19:46:00 24 4
gpt4 key购买 nike

首先,我已经学习了 JS 大约 2-3 个小时。我迷失了方向。现在是凌晨 5 点。我正在参加一个黑客马拉松,并尝试将我的 Java 应用程序编写为 Web 应用程序。我有7个小时。任何帮助将不胜感激。我也知道 eval 是一个糟糕的主意。然而,对于我目前的目的来说,这是最简单的事情。话虽这么说:

为清晰起见进行编辑所以本质上,我有一个小小的刽子手风格的学习编码游戏:我有一个非常短的、无错误的代码片段库。该程序向代码引入了错误(主要是遗漏),并显示有错误的代码。然后,玩家尝试更正代码,或者(如果他们选择)编写一个不同的片段来反射(reflect)所显示的有错误的代码的预期结果。他们在文本区域中输入答案,然后程序会比较两个代码片段(有错误的片段和用户提供的片段)的执行结果。如果输出匹配,则用户获胜。

是否有一种方法可以将结果与包含另一个 eval 的另一个变量进行比较?

如:

为了清晰起见进行编辑以下代码片段背后的逻辑是:

有一个变量 result,我试图用它来引用输入区域 (game.input) 中的值(可能有错误的代码片段)调用 eval() 的结果。数组goodCode包含好代码;即无错误的代码。我想对两个代码片段(来自 goodCode 的代码片段和来自 game.input 的代码片段)调用 eval() ,并比较它们的执行输出。如果执行相同,则程序将输出执行成功,并显示“winner”的消息。

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>

我确信我的解释中的术语确实不正确。对于那个很抱歉。任何帮助,将不胜感激。

最佳答案

如果两个代码片段都返回一个值,您可以比较它们。但是 document.write() 等不会返回任何有用的内容,您唯一能做的就是比较代码本身而不执行它。

关于javascript - 比较 javascript 中的两个 eval() 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com