我有一个字符串数组和一个字符串。我想测试这个字符串对数组值和应用条件的结果-如果数组包含字符串做“a”,否则做“B”。
我该怎么做呢?
我有一个字符串数组和一个字符串。我想测试这个字符串对数组值和应用条件的结果-如果数组包含字符串做“a”,否则做“B”。
我该怎么做呢?
当前回答
这将为你做到:
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle)
return true;
}
return false;
}
我发现它在堆栈溢出问题JavaScript相当于PHP的in_array()。
其他回答
你可以使用indexOfmethod并“扩展”数组类,该方法包含如下内容:
Array.prototype.contains = function(element){
return this.indexOf(element) > -1;
};
结果如下:
["A", "B", "C"].contains("A")等于true
["A", "B", "C"].contains("D") = false
var stringArray = ["String1", "String2", "String3"];
return (stringArray.indexOf(searchStr) > -1)
这将为你做到:
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle)
return true;
}
return false;
}
我发现它在堆栈溢出问题JavaScript相当于PHP的in_array()。
有一个indexOf方法,所有数组都有(除了ie8及以下版本),它将返回数组中元素的索引,如果不在数组中则返回-1:
if (yourArray.indexOf("someString") > -1) {
//In the array!
} else {
//Not in the array
}
如果您需要支持旧的IE浏览器,您可以使用MDN文章中的代码填充此方法。
创建这个函数原型:
Array.prototype.contains = function ( needle ) {
for (var i in this) { // Loop through every item in array
if (this[i] == needle) return true; // return true if current item == needle
}
return false;
}
然后你可以使用下面的代码在数组x中搜索
if (x.contains('searchedString')) {
// do a
}
else
{
// do b
}