我目前正在努力使用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没有定义。不知道我在做什么错。有人可以指出我正确的方向吗?
答案 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位置的匹配继续迭代直到最后,不需要some
或for
(带有中断),则在找到匹配项时停止。