检查一个数组的每个项目以查找另一个数组中的匹配项

时间:2013-08-07 20:14:57

标签: javascript arrays match

我目前正在尝试编写一个文字游戏,其中玩家将他/她找到的单词键入文本框并点击提交。点击提交后,该单词存储在一个数组中,我可以在Javascript中执行某些操作,并清除文本框以便他们可以输入另一个单词。我想我最终可以解决这些问题(我是HTML和JavaScript的新手),但我不知道如何做我想做的事情。我需要检查玩家在一系列经过验证的单词中找到的每个单词。我在这里找到了一些代码,用于搜索单个单词是否与任何字符串匹配,但是如何编写一个代码来检查玩家在字典/验证数组中找到的所有单词?

4 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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将为真或假。

答案 2 :(得分:0)

如果您在客户端执行此操作,则可以将单词的字典存储在数组中,例如array= ["one","two", "three","word"],然后使用此{{1}检查用户对您的字典的单词word }}

答案 3 :(得分: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/

相关问题