在angularjs中使用对象内部的多个数组循环

时间:2018-08-22 15:56:16

标签: javascript arrays angularjs foreach

我目前正在努力使用forEach方法来循环其中包含多个对象的数组。我可能犯了一个愚蠢的错误,但是我不确定这是哪里出了错

我有一个带有一些像这样的数组的对象...

助手数组:

var assistants =
[  
   {    
         "countryCode":"US",
         "cityName":"San Diego",
         "geographicRegionCode":"CA"
   },
   {
         "countryCode":"AD",
         "cityName":"a",
         "geographicRegionCode":null
   }
]

函数im用于遍历并返回值...

     function validateAssistants () {
          angular.forEach(assistants, function(a) {
            if(a.countryCode === "US") {
              return true;
            }
          });
      }

当我要调试...时,它一直在说a没有定义。不知道我在做什么错。有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

forEach()的工作方式类似于[1,2,3].forEach(callback),但我认为最好的最佳方法是使用some()查找是否匹配某些元素,例如assistants.some(o=>o.countryCode == "US")

var assistants =
[  
   {    
         "countryCode":"US",
         "cityName":"San Diego",
         "geographicRegionCode":"CA"
   },
   {
         "countryCode":"AD",
         "cityName":"a",
         "geographicRegionCode":null
   }
]


assistants.forEach((o)=>{

if(o.countryCode === "US") {
         console.log(true);
        }

})

console.log(assistants.some(o=>o.countryCode == "US"))//<-- best

forEach()迭代所有元素,如果发现在0位置的匹配继续迭代直到最后,不需要somefor(带有中断),则在找到匹配项时停止。