Javascript 如何循环通过angular.forEach并只显示一次结果
我想循环一个数字数组,看看它是否与我要检查的变量匹配。它正在正确地进行检查,但每次检查时都会显示结果。我想让它做的是…做检查,只在完成后吐出结果。有办法吗Javascript 如何循环通过angular.forEach并只显示一次结果,javascript,angularjs,arrays,foreach,Javascript,Angularjs,Arrays,Foreach,我想循环一个数字数组,看看它是否与我要检查的变量匹配。它正在正确地进行检查,但每次检查时都会显示结果。我想让它做的是…做检查,只在完成后吐出结果。有办法吗 var myNumber = 123; var sponsorNumber = [345, 234, 525]; angular.forEach(sponsorNumber, function(value) { if (value !== m
var myNumber = 123;
var sponsorNumber = [345, 234, 525];
angular.forEach(sponsorNumber, function(value) {
if (value !== myNumber) {
console.log('doesnt match!');
}
});
不要在循环内打印消息。你需要维护一面旗帜,以判断它是否被发现。最后打印出来 然而,在这里你不需要foreach。只需尝试
indexOf
函数
if (sponsorNumber.indexOf(myNumber) < 0 ) {
console.log('doesnt match!');
}
if(sponsorNumber.indexOf(myNumber)<0){
console.log('不匹配!');
}
你为什么不使用simple来做你真正想做的事情呢?如果它返回-1,那么您知道数组中不包含您的数字。如果已经有一个完美的轮子,则无需重新发明轮子。如果这是您想要的,您可以过滤然后循环(效率较低):
但这对我来说没什么意义。我想你还想要别的东西,就像其他人评论的那样,使用indexOf
sponsorNumber.filter(value => value !== myNumber).forEach(function(value) {
console.log('doesnt match!');
});