Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环通过angular.forEach并只显示一次结果_Javascript_Angularjs_Arrays_Foreach - Fatal编程技术网

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!');
});