簡體   English   中英

比較javascript中的兩個eval()對象

[英]comparing two eval() objects in javascript

首先,我已經學習了大約2-3個小時的JS。 我失去了軌道。 現在是凌晨5點。 我是一個黑客馬拉松,並試圖將我的Java應用程序編寫為webapp。 我有7個小時。 任何幫助將不勝感激。 我也知道eval是個糟糕的主意。 但是,這對我來說是最簡單的事情。 話雖如此:

編輯為清晰所以基本上,我有一個小劊子手式學習編碼游戲:我有一個非常短,無錯誤的代碼片段庫。 該程序向代碼引入了錯誤(主要是遺漏),並顯示錯誤的代碼。 然后,播放器嘗試更正代碼,或者,如果他們選擇,則編寫一個不同的片段,該片段反映顯示的錯誤代碼的預期結果。 他們在textarea中輸入他們的答案,然后程序比較兩個代碼片段(buggy snippet和用戶提供的片段)的執行結果。 如果輸出匹配,則用戶獲勝。

是否有可能將結果與另一個包含另一個eval的變量進行比較?

如:

為清晰起見編輯以下代碼段背后的邏輯是:

有一個變量result,我試圖用它來引用eval()調用輸入區域(game.input)中的值(可能有錯誤的代碼片段)的結果。 數組goodCode包含好的代碼; 即非馬車代碼。 我想在兩個代碼片段(來自goodCode的一個片段和來自game.input的片段)上調用eval(),並比較它們的執行輸出。 如果他們的執行相同,程序將輸出成功執行,並顯示一條消息“勝利者”。

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()等不會返回任何有用的東西,你唯一能做的就是比較代碼本身而不執行它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM