1

我目前正在尝试编写一个文字游戏,玩家将他/她找到的单词输入文本框并点击提交。点击提交后,该单词被存储在一个数组中,我可以在 Javascript 中使用它,并且清除文本框,以便他们可以输入另一个单词。我想我最终可以弄清楚这些部分(我是 HTML 和 JavaScript 的新手),但我不知道下一步该怎么做。我需要根据一组经过验证的单词检查玩家找到的每个单词。我在这里找到了一些代码,它们将搜索单个单词是否与数组中的任何字符串匹配,但是我将如何编写一个代码来检查玩家根据字典/验证数组找到的所有单词?

4

4 回答 4

1

您可以遍历用户数组中的每个元素并使用 IndexOf 来查看它是否存在于您已验证的数组中。如果未找到,IndexOf 将返回 -1。

for (var i = 0; i < userArray.length ; i++) 
    if(verifiedWordArray.indexOf(userArray[i]) == -1)
        return false;     
return true;

如果您必须匹配特定位置,假设它们的长度相同,这将起到作用。

for (var i = 0; i < userArray.length ; i++) 
    if(userArray[i] != verifiedWordArray[i])
        return false;     
return true;
于 2013-08-07T20:26:48.167 回答
0
function getIntersect(arr1, arr2) {
    var r = [], o = {}, l = arr2.length, i, v;
    for (i = 0; i < l; i++) {
        o[arr2[i]] = true;
    }
    l = arr1.length;
    for (i = 0; i < l; i++) {
        v = arr1[i];
        if (v in o) {
            r.push(v);
        }
    }
    return r;
}

来自: http: //www.falsepositives.com/index.php/2009/12/01/javascript-function-to-get-the-intersect-of-2-arrays/

于 2013-08-07T20:36:34.987 回答
0

如果您在客户端执行此操作,您可以将您的单词字典存储在一个数组中,例如array= ["one","two", "three","word"],然后检查用户的单词是否word与您的字典相匹配array.indexOf('word') > -1

于 2013-08-07T20:21:21.097 回答
0

伪代码:

ans = true // assume the user is right
for (each of the words in user input array){
    if(current word is not in the predefined array){ // use .indexOf()
        ans = false
        break; //stop loop
    }
}

一旦这个循环完成,ans将根据用户的输入判断为真或假。

于 2013-08-07T20:19:54.643 回答