真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用angularjs.foreach時return的問題解決

AngularJS中當我們需要遍歷某個數(shù)組的時候,我們會用到forEach語法。AngularJS中forEach的用法如下:

成都創(chuàng)新互聯(lián)是專業(yè)的桂陽網(wǎng)站建設公司,桂陽接單;提供網(wǎng)站設計、成都做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行桂陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

angular.forEach(array,function(obj,index){
doSomething();
})

array表示需要遍歷的數(shù)組,obj表示遍歷時的每個元素,index表示遍歷時元素的下標。index不是必須的參數(shù),可以不寫??梢愿鶕?jù)需要添加與否。

在寫一個比較數(shù)組對象中是否存在一個對象,存在返回true,失敗返回false.在return時,發(fā)現(xiàn)并沒有退出方法,自己測試了一下.

首先先寫一個數(shù)組對象,然后用angularjs的forEach方法循環(huán)比較,當存在名字為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 + ' pass the test');return;}
  console.log(value.name + ' pass');
  });
  console.log(false + ' pass the test');
  return false;
 }();

剛開始認為,當找到value.name == 2的元素時,方法就會直接返回,所以應該只輸出1 pass,true pass the test然后程序結束,但輸出結果卻是這樣的:

使用angularjs.foreach時return的問題解決

結果發(fā)現(xiàn)在forEach里的return 居然只起到了for循環(huán)里的continue作用.

再把forEach循環(huán)的返回值和執(zhí)行函數(shù)的返回值打印出來:

使用angularjs.foreach時return的問題解決

forEach函數(shù)返回的是循環(huán)的數(shù)組,函數(shù)的返回值是false.說明在forEach里return 并沒有奏效,僅僅起到了continue的作用.
去網(wǎng)上搜了一下,并沒有原因說明..

解決方案:用一個臨時變量存儲結果,當條件成立相同時將結果改為true:

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

使用angularjs.foreach時return的問題解決

這樣雖然能獲得正確的返回值,但卻無法阻止forEach的循環(huán),想來forEach應該是用在歷遍數(shù)組元素來做一些操作,像這樣的應該用for循環(huán)比較好一些.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)頁名稱:使用angularjs.foreach時return的問題解決
網(wǎng)站地址:http://weahome.cn/article/jssses.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部