Javascript 在字符串数组中查找特定字符串
在字符串数组中,如果循环发现其中一个字符串不是我们要查找的字符串,则返回Javascript 在字符串数组中查找特定字符串,javascript,arrays,string,for-loop,indexof,Javascript,Arrays,String,For Loop,Indexof,在字符串数组中,如果循环发现其中一个字符串不是我们要查找的字符串,则返回false 如果没有找到不匹配的字符串,则数组是正确的,它应该返回true。即使数组没有“错误”,它也会不断返回false 我曾尝试使用indexOf,用于循环和while循环,但均未成功 function brackets() { var testArr = ['()', '{}', '()'] /* Method 1 --- returns false even when the parenthesis
false
如果没有找到不匹配的字符串,则数组是正确的,它应该返回true
。即使数组没有“错误”,它也会不断返回false
我曾尝试使用indexOf
,用于循环和while循环,但均未成功
function brackets() {
var testArr = ['()', '{}', '()']
/* Method 1 --- returns false even when the parenthesis are ok, I guess
it's because the indexOf only searches for the first element that matches
the criteria */
if (testArr.indexOf("()") == -1 || testArr.indexOf("{}") == -1 ||
testArr.indexOf("[]") == -1) {
return false
} else {
return true
}
/* Method 2 --- for loop. Same story, returns false, even when all
testArr[i] === any of the cases and none of them is !==, it behaves as if it was
false. I'm not sure why */
for (i = 0; i < testArr.length; i++) {
if (testArr[i] !== "()" || testArr[i] !== "{}" || testArr[i] !== "[]") {
return false
}
}
return true
}
brackets()
函数括号(){
var testArr=['()'、'{}'、'()']
/*方法1---我想,即使括号是ok,也返回false
这是因为indexOf只搜索匹配的第一个元素
标准*/
如果(testArr.indexOf(“()”)=-1 | | testArr.indexOf(“{}”)=-1||
testArr.indexOf(“[]”==-1){
返回错误
}否则{
返回真值
}
/*方法2---for loop.Same story返回false,即使所有
testArr[i]==任何情况下,如果没有一个是!==,它的行为就像是
错,我不知道为什么*/
对于(i=0;i
将数组更改为:var testArr=['()'、'{}'、'[]']
既然你这么做了
if (testArr.indexOf("()") == -1 || testArr.indexOf("{}") == -1 ||
testArr.indexOf("[]") == -1)
然后,即使这些括号中的一个不在数组中,条件也将返回false。您已经用
var testArr = ['()', '{}', '()']
因此,如果需要测试字符串,则需要测试二维数组
if (testArr[0].indexOf("()") == -1
在第二种方法中,可以使用AND运算符来解决此问题
function brackets() {
var testArr = ['()', '{}', '()'];
/* Method 2 --- for loop. Same story, returns false, even when all
testArr[i] === any of the cases and none of them is !==, it behaves as if it was
false. I'm not sure why */
for (i = 0; i < testArr.length; i++) {
if (testArr[i] !== "()" && testArr[i] !== "{}" && testArr[i] !== "[]") {
return false;
}
}
return true;
}
brackets();
函数括号(){
var testArr=['()','{}','()'];
/*方法2---for loop.Same story返回false,即使所有
testArr[i]==任何情况下,如果没有一个是!==,它的行为就像是
错,我不知道为什么*/
对于(i=0;i
这应该可以做到:
var testArr = ['()', '{}', '()'];
if(testArr.some(function(e){ return /(){}/g.test(e) })){
console.log("found");
} else {
console.log("not found");
}
查找“()”和“{}”的所有实例
testArr.indexOf(“[]”)显然失败了,因为它是逻辑的,或者如果其中任何一个失败了,它会返回false?@vsl0610:但是您的示例中的数组显然有一个错误,即它不包含[]
?如果您对“一个不包含错误但仍然返回false的数组”有问题,那么您应该提供代码来演示这种情况。