如何在JavaScript中检查字符串数组是否包含一个字符串?
我有一个字符串数组和一个字符串。我想根据数组值测试这个字符串,并对结果应用一个条件-如果数组包含字符串do“a”,否则就执行“B” 如何执行此操作?所有数组都有一个方法(Internet Explorer 8及以下版本除外),该方法将返回数组中某个元素的索引,如果该元素不在数组中,则返回-1:如何在JavaScript中检查字符串数组是否包含一个字符串?,javascript,arrays,string,testing,Javascript,Arrays,String,Testing,我有一个字符串数组和一个字符串。我想根据数组值测试这个字符串,并对结果应用一个条件-如果数组包含字符串do“a”,否则就执行“B” 如何执行此操作?所有数组都有一个方法(Internet Explorer 8及以下版本除外),该方法将返回数组中某个元素的索引,如果该元素不在数组中,则返回-1: if (yourArray.indexOf("someString") > -1) { //In the array! } else { //Not in the array }
if (yourArray.indexOf("someString") > -1) {
//In the array!
} else {
//Not in the array
}
如果您需要支持旧的IE浏览器,可以使用中的代码填充此方法。这将为您提供:
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle)
return true;
}
return false;
}
功能inArray(针、草垛){
var length=haystack.length;
对于(变量i=0;i
我在堆栈溢出问题中找到了它。您可以使用
indexOf
方法,并使用包含的方法“扩展”数组类,如下所示:
Array.prototype.contains = function(element){
return this.indexOf(element) > -1;
};
结果如下:
[“A”、“B”、“C]”。包含(“A”)
等于true
[“A”、“B”、“C]”。包含(“D”)
等于false
创建此函数原型:
Array.prototype.contains = function ( needle ) {
for (i in this) {
if (this[i] == needle) return true;
}
return false;
}
然后可以使用以下代码在数组x中搜索
if (x.contains('searchedString')) {
// do a
}
else
{
// do b
}
检查:indexOf遍历数组并逐个比较!当这个问题是一大堆其他问题的翻版时,它怎么还没有结束呢,你重新发明了由现代浏览器支持的indexOf…这在IE9之前是不受IE支持的-包括我在内的很多人都必须为IE8开发(不幸的是,大多数时候IE7也是如此)。不可否认,创建indexOf函数的原型方法是一个更好的解决方案,可以解决我所读到的效率不高的代码。这是一个糟糕的做法。如果你真的想让它包含你最好用indexOfGood的答案来包装它,但是值得一提的是在使用indexOf时老IE版本的兼容性问题。没有人关心IE,即使是微软:D@andygoestohollywood可悲的是,有些公司仍然使用IE。仅仅因为有些公司处于石器时代,并不意味着你应该放弃9%的市场。@AlexFallenstedt是的,不。Internet Explorer是一种经验证的安全威胁,与现代web技术不兼容。如果一家公司花得起X美元来使用你的web应用程序,那么他们花得起0美元来安装Firefox或其他没有后门的东西。如果他们出于愚蠢的原因不这么做,就在标价上加上$Y,然后用NW.js或Electron打包你的应用程序。@SkylarIttner许多跨国公司在其内部网中使用IE。为什么?当年,一个内部开发团队决定让内部网在一个浏览器上工作。我工作的公司就是这样。他们选择了IE。今天,这家拥有216000名员工的世界性公司正在统计。企业遗留系统是如此相互关联,以至于进行任何更改都需要大量的时间和金钱。对于一些组织来说,仅仅为了让员工停止抱怨IE,几乎不可能做到这一点。对他们来说,IE没有商业价值,也永远不会有商业价值。有没有更好的方法来做到这一点,巴贝尔ES2017?这种方法可行,但看起来有点误用。我建议使用includes
func,这正是作者所要求的。下面是一个示例:['A','B'].包括('A')/>>true['A','B'].包括('C')/>false@StanislauBaranouski-真的<代码>包含()
在2020年及以后会更好。
if (x.contains('searchedString')) {
// do a
}
else
{
// do b
}