宝哥软件园

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

编辑:宝哥软件园 来源:互联网 时间:2021-08-29

当我们需要遍历AngularJS中的数组时,我们将使用forEach语法。在AngularJS中forEach的用法如下:

angular.forEach(数组,函数(obj,index){ dosometing();})array表示要遍历的数组,obj表示遍历过程中的每个元素,index表示遍历过程中元素的下标。索引不是必需的参数,因此您可以将其留空。可根据需要添加或不添加。

写比较数组对象时,不管有没有对象,存在返回真,失败返回假。回来的时候发现没有退出方法,就自己测试了一下。

首先写一个数组对象,然后用angularjs的forEach方法循环比较。如果有一个名为2的对象,输出true并返回它,否则输出false并返回它。

self . test=function(){ var testArray=[{ name : 1 },{name:2},{ name :3 }];angular.forEach(testArray,function(value,key){ if(value . name==2){ console . log(true '通过测试');返回;} console . log(value . name“pass”);});console.log(false“通过测试”);返回false}();一开始我以为找到一个value.name==2的元素,方法会直接返回,所以应该只输出1 pass,true通过测试然后程序结束,但是输出结果是:

原来forEach中的return只起到for循环中continue的作用。

然后打印forEach循环的返回值和执行函数:的返回值

forEach函数返回一个循环数组,该函数的返回值为false。这说明return在forEach中没有起作用,而只是起到了继续的作用。我在网上搜索了一下,但是没有理由.

解决方案:使用临时变量来存储结果,并在条件相同时将结果更改为true:

self . test=function(){ var testArray=[{ name : 1 },{name:2},{ name :3 }];var结果=假;angular.forEach(testArray,function(value,key){ if(value . name==2){ result=true;} });返回结果;};console . log(self . test());

虽然这样可以得到正确的返回值,但是不能停止forEach的循环。我认为forEach应该用来遍历数组元素来做一些操作,像这样使用for循环更好。

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

更多资讯
游戏推荐
更多+