Javascript jQuery-比较数组中的indexOF

Javascript jQuery-比较数组中的indexOF,javascript,jquery,arrays,indexof,Javascript,Jquery,Arrays,Indexof,如果我的问题很愚蠢,我想提前道歉,但我对jQuery非常陌生。我想做的是比较两个变量。第一个将从div中获取其值。第二个是数组。如果有人能告诉我我的错误在哪里,我将不胜感激。先谢谢你 向你问好,乔治 var User=$'.User'.text; var Lucky_Names=[佛罗伦萨、布伦达、史蒂文]; console.logu名称; ifUser.indexOfLucky_名称>=1{ 祝贺你,我们找到了一对。; } 否则{ 我们找不到匹配的。; } 马克·瓦茨 万达·海瑟薇 安·贝利

如果我的问题很愚蠢,我想提前道歉,但我对jQuery非常陌生。我想做的是比较两个变量。第一个将从div中获取其值。第二个是数组。如果有人能告诉我我的错误在哪里,我将不胜感激。先谢谢你

向你问好,乔治

var User=$'.User'.text; var Lucky_Names=[佛罗伦萨、布伦达、史蒂文]; console.logu名称; ifUser.indexOfLucky_名称>=1{ 祝贺你,我们找到了一对。; } 否则{ 我们找不到匹配的。; } 马克·瓦茨 万达·海瑟薇 安·贝利 哈尔·皮西里洛 理查德·布兰森 杰弗里·罗宾逊 克里斯蒂娜·哈蒙斯 海伦·克拉克 埃雷拉地 史蒂文·罗德斯 PS:此列表中的所有名称都是随机生成的。您不能使用User.indexOfLucky_名称

编辑:此外,您的用户将是输入,而Lucky_用户包含3个元素。您也可以使用Lucky_Names.indexOfUser>-1

我相信你想要达到的是在幸运的名字中找到用户的位置

您需要为索引提供Lucky_名称


如果用户匹配任何一个Lucky_名称,位置将是它在Lucky_名称中的索引,否则它将是-1。

您必须使用jQuery.each循环遍历每个.User元素,这样将更容易使数组成为正则表达式或从中创建一个正则表达式:

"Mark WattsWanda HathawayAnn BailesHal PiccirilloRichard BransonJeffery RobisonChristina HammonsHelen ClarkeTerra HerreraSteven Rhodes"
var Lucky_Names=[佛罗伦萨、布伦达、史蒂文]; var regex=新的regu名称。加入“|”;//正则表达式:/Florence | Brenda | Steven/如果有特殊字符,则必须转义 $'.User'.eachfunction{//对于每个.User元素 var text=$this.text;//获取文本 ifregex.testtext{//检查正则表达式是否匹配 $this.addClasshighlight; } }; .亮点{ 背景色:红色; } 马克·瓦茨 万达·海瑟薇 安·贝利 哈尔·皮西里洛 弗洛伦斯·布兰森 杰弗里·罗宾逊 克里斯蒂娜·哈蒙斯 海伦·克拉克 埃雷拉地 史蒂文·罗德斯 PS:此列表中的所有名称都是随机生成的。您可以使用来迭代 .User元素、.some、.indexOf以筛选元素的.text内容

var Lucky_Names=[佛罗伦萨、布伦达、史蒂文]; var matches=$.grep$.User,functionuser{ 返回Lucky_Names.somefunctionprop{ 返回user.textContent.indexOfprop>-1 }; }; 如果匹配长度{ //做事 $.eachmatches,函数{ this.style.color=绿色 } } 马克·瓦茨 万达·海瑟薇 安·贝利 哈尔·皮西里洛 理查德·布兰森 杰弗里·罗宾逊 克里斯蒂娜·哈蒙斯 海伦·克拉克 埃雷拉地 史蒂文·罗德斯 PS:此列表中的所有名称都是随机生成的。$'.User'。文本将返回连接在一个字符串中的所有名称,如下所示:

"Mark WattsWanda HathawayAnn BailesHal PiccirilloRichard BransonJeffery RobisonChristina HammonsHelen ClarkeTerra HerreraSteven Rhodes"
要查找此字符串是否包含Lucky_名称中的任何名称,请执行以下操作:


这可以解决您的问题+同时提醒哪些用户是幸运的。由于您不熟悉jQuery,也可能不熟悉Javascript,我将尝试解释一下我所做的工作

将变量users、luckyNames和luckyUsers声明为常量常量值,因为它永远不会被重新分配

使用array.from将$'.User'选择器的结果转换为数组

我正在使用map函数创建一个新数组,其中包含应用于users数组中每个项目的操作结果。还要检查以了解用户=>{…}

之后,我将应用一个过滤函数,为我过滤幸运的用户。这发生在函数内部,我检查firstname是否在这里应用了空格分割来获取它,它是否在我的luckyNames数组中

最后,我检查仅包含筛选匹配项的luckyUsers数组的长度是否大于0

为了很好地提醒一切,我使用了允许嵌入表达式的模板文本

在模板文本中,我正在使用连接。。。显示由、和空格分隔的匹配名称

看看如何加入。。。正在工作,只需更改/添加列表中的名称

const users=Array.from$'.User'; const luckyNames=[佛罗伦萨、布伦达、史蒂文]; const luckyUsers=users.mapuser=>{ 返回user.innerHTML.replace/]*>/; }.filteruser=>{ 返回luckyNames.indexOfuser.split'[0]>-1; }; ifluckyUsers.length>0{ 警报`祝贺您,我们找到了匹配项:${luckyUsers.join','}`; }否则{ 我们找不到匹配的。; } 马克·瓦茨 万达·海瑟薇 安·贝利 哈尔·皮西里洛 理查德·布兰森 杰弗里·罗宾逊 克里斯蒂娜·哈蒙斯 海伦·克拉克 埃雷拉地 史蒂文·罗德斯
PS:这个列表中的所有名字都是随机生成的..文本只返回第一个匹配的选择器文本哦,上帝不会再出现了,不是你!哈哈@是的,又是上帝。我们哪儿也不去。不是在一台能精确检查传送带接近情况的计算机上。可能需要一些adjustments@guest271314谢谢你的建议。在下一个练习中,我一定会尝试使用这种方法。我非常感谢你给出的详细答案。我发现了很多东西
我失踪了。再次感谢你!谢谢你的建议。我看了你一眼,但在评论中我发现了一个更简单的问题。不过,我真的很感谢你的帮助!谢谢你的建议,我也一定会努力实现这个想法。谢谢你的建议。我发现它非常有效,而且可以瞬间工作。我非常感谢你的帮助!
var User  = $('.User').text();
var Lucky_Names = ["Florence", "Brenda", "Steven"];
console.log(Lucky_Names);

var _foundFlag = false;
Lucky_Names.forEach( function (d) {
    if (User.indexOf(d) > -1) //Note that 0 is also a positive match
        _foundFlag = true;
})

if (_foundFlag) {
    alert("Congratulations, we found a match.");   
} else {
    alert("We couldn't find a match.");
}