检查一个数组中的每个项是否与另一个数组匹配
Check each item of one array for matches in another array
我目前正在尝试编写一个文字游戏程序,玩家将找到的单词输入到文本框中,然后点击提交。点击submit后,该单词被存储在一个数组中,我可以在Javascript中使用它,并且文本框被清除,以便他们可以输入另一个单词。我想我最终可以弄清楚这些部分(我是HTML和JavaScript的新手),但我不知道下一步该怎么做。我需要对照一组经过验证的单词来检查玩家发现的每个单词。我在这里找到了一些代码,可以搜索单个单词是否与数组中的任何字符串匹配,但我该如何编写一个代码,根据字典/已验证的数组检查玩家找到的所有单词?
您可以迭代用户数组中的每个元素,并使用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;
伪代码:
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
将根据用户的输入为真或假。
如果在客户端执行此操作,则可以将单词的字典存储在一个数组中,例如array= ["one","two", "three","word"]
,然后使用此array.indexOf('word') > -1
检查用户的单词word
是否与您的字典匹配
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/
相关文章:
- 查找对象数组是否包含其中一个标记的最快方法
- 检查数组是否包含
- 确定数组是否包含偶数
- 在 JavaScript 中连接字符串或数组是否更快
- 检查对象数组是否具有所有必需的键
- 检查数组是否包含指定的对象
- 在通过套接字发送到客户端之前压缩中等大小的javascript数组是否值得
- 检查数组是否有空元素
- 检查输入框的数组是否为空
- 如何检查JSON数组是否等于
- 检查数组是否已定义并且具有长度
- 检查数组是否包含特定对象
- 什么'最合适的数据结构是什么?(使用一个有间隙的数组是否存在缺点或注意事项?)
- 如何检查子集数组是否包含超集数组之一
- 检查对象数组是否包含布尔值true/false
- 检查数组是否在MongoDB文档中包含帖子ID
- 检查数组是否包含允许或不允许的字符
- 检查 javascript 数组是否不仅包含空值
- 在循环时修改数组是否安全
- 列表/数组是否有效 JSON