Javascript 在for循环中,如何阻止条件语句同时运行if子句和else子句?
我有一个循环的数组,用来测试循环中是否存在用户提供的字符串。当我运行循环并进行检查时,它在匹配的数组项上返回true,在不匹配的数组项上返回false。我知道这是因为我在检查每个单独的数组项。我的问题是,如何仅当字符串与数组项匹配时才得到trueJavascript 在for循环中,如何阻止条件语句同时运行if子句和else子句?,javascript,arrays,Javascript,Arrays,我有一个循环的数组,用来测试循环中是否存在用户提供的字符串。当我运行循环并进行检查时,它在匹配的数组项上返回true,在不匹配的数组项上返回false。我知道这是因为我在检查每个单独的数组项。我的问题是,如何仅当字符串与数组项匹配时才得到true var string = "a"; var array = ["a", "b", "c"]; for(var i = 0; i < array.length; i++){ if(string == array[i]){ c
var string = "a";
var array = ["a", "b", "c"];
for(var i = 0; i < array.length; i++){
if(string == array[i]){
console.log("Exists");
}
else{
console.log("Doesn't exist");
}
}
var string=“a”;
变量数组=[“a”、“b”、“c”];
对于(var i=0;i
现在,如果我运行这个,我会看到:
“存在”
“不存在”
“不存在”
您可以使用Es6
如果您担心浏览器支持,那么只需使用
您可以使用Es6来完成
如果您担心浏览器支持,那么只需使用
尝试:
var string=“a”;
变量数组=[“a”、“b”、“c”];
var=false;
对于(var i=0;i
试试:
var string = "a";
var array = ["a", "b", "c"];
var found = false;
for(var i = 0; i < array.length; i++){
if(string == array[i]){
found = true;
break;
}
}
if (found === true){
console.log("Exists");
}
else{
console.log("Doesn't exist");
}
var string=“a”;
变量数组=[“a”、“b”、“c”];
var=false;
对于(var i=0;i
您可以使用仅获取匹配的项目:
var string = "a";
var array = ["a", "b", "c"];
var matches = array.filter(function(item) {
return item === string;
});
还是ES6
var matches = array.filter(item => item === string);
如果您只想true
/false
,也可以使用:
array.some(item => item === string); // true
array.some(item => item === 'foo'); // false
您可以使用仅获取匹配的项目:
var string = "a";
var array = ["a", "b", "c"];
var matches = array.filter(function(item) {
return item === string;
});
还是ES6
var matches = array.filter(item => item === string);
如果您只想true
/false
,也可以使用:
array.some(item => item === string); // true
array.some(item => item === 'foo'); // false
使用该方法
需要注意的是,.some()
在返回第一个真值后将停止执行,而.forEach()
和过滤器()
每次都会在整个数组上迭代。这可能会严重影响性能,具体取决于阵列的大小
使用该方法
需要注意的是,.some()
在返回第一个真值后将停止执行,而.forEach()
和过滤器()
每次都会在整个数组上迭代。这可能会严重影响性能,具体取决于阵列的大小
您可以使用
for..of
循环,中断
var string=“a”;
变量数组=[“a”、“b”、“c”];
for(数组的let prop){if(prop==string){console.log(“Exists”);break;}代码>您可以使用for..of
loop,break
var string=“a”;
变量数组=[“a”、“b”、“c”];
for(数组的let prop){if(prop==string){console.log(“Exists”);break;}代码>我会在find=true之后添加break;否则,即使找到了答案,也会在整个数组中循环,浪费处理时间。这一点很好。编辑,但实际上indexOf可能是一个更好的解决方案;否则,即使找到了答案,也会在整个数组中循环,浪费处理时间。这一点很好。编辑,但实际上indexOf可能是一个更好的解决方案。你必须使用break关键字你必须使用break关键字