使用angularjs.foreach时返回的问题解决

  

AngularJS中当我们需要遍历某个数组的时候,我们会用到forEach语法.AngularJS中forEach的用法如下:

        angular.forEach(数组,函数(obj,指数){   doSomething ();   })      

数组表示需要遍历的数组,obj表示遍历时的每个元素,索引表示遍历时元素的下标.index不是必须的参数,可以不写。可以根据需要添加与否。

  

在写一个比较数组对象中是否存在一个对象,存在返回真,失败返回错误的。在返回时,发现并没有退出方法,自己测试了一下。

  

首先先写一个数组对象,然后用angularjs的forEach方法循环比较,当存在名字为2的对象时,输出真实并返回,否则输出错误并返回。

        自我。测试=function () {   var testArray=[{名称:1},{名称:2},{名称:3});   角。forEach (testArray、功能(价值,键){   如果(value.name==2){控制台。日志(真实+“通过测试”);回归;}   console.log (value.name + '通过');   });   控制台。日志(假+“通过测试”);   返回错误;   } ();   之前      

刚开始认为,当找到value.name==2的元素时,方法就会直接返回,所以应该只输出1传递,真正通过测试然后程序结束,但输出结果却是这样的:

  

使用angularjs.foreach时返回的问题解决

  

结果发现在forEach里的返回居然只起到了为循环里的继续作用。
  

  

再把forEach循环的返回值和执行函数的返回值打印出来:

  

使用angularjs.foreach时返回的问题解决

  

forEach函数返回的是循环的数组,函数的返回值是错误的。说明在forEach里返回并没有奏效,仅仅起到了继续的作用。
  去网上搜了一下,并没有原因说明. .

  

解决方案:用一个临时变量存储结果,当条件成立相同时将结果改为真:

        自我。测试=function () {   var testArray=[{名称:1},{名称:2},{名称:3});   var=false结果;   角。forEach (testArray、功能(价值,键){   如果(value.name==2){结果=true;}   });   返回结果;   };   console.log (self.test ());   
     

使用angularjs.foreach时返回的问题解决

  

这样虽然能获得正确的返回值,但却无法阻止forEach的循环,想来forEach应该是用在历遍数组元素来做一些操作,像这样的应该用的循环比较好一些。
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

使用angularjs.foreach时返回的问题解决