Typescript 并不是所有的代码路径都返回值,但它们似乎都返回值

Typescript 并不是所有的代码路径都返回值,但它们似乎都返回值,typescript,for-loop,Typescript,For Loop,我试图迭代我创建的自定义类的数组,但它告诉我并非所有代码路径都返回值。在Java中,最确定的是所有路径都返回一个值 function PointLiesWithinAtleast1Polygon(point: CLLocationCoordinate2D, polygons: Array<GMSPath>){ polygons.forEach(polygon =>{ if(GMSGeometryContainsLocation(point, polygon)){

我试图迭代我创建的自定义类的数组,但它告诉我并非所有代码路径都返回值。在Java中,最确定的是所有路径都返回一个值

function PointLiesWithinAtleast1Polygon(point: CLLocationCoordinate2D, polygons: Array<GMSPath>){

polygons.forEach(polygon =>{
    if(GMSGeometryContainsLocation(point, polygon)){
        return true;
    }
});

return false;

}
函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
多边形。forEach(多边形=>{
if(GMSGeometryContainesLocation(点、多边形)){
返回true;
}
});
返回false;
}

迭代多边形数组,如果满足条件,则返回true,函数结束。如果不满足条件,则循环中断并返回false。为什么它说不是所有的代码路径都返回一个值呢?

方法
PointLiesWithinAtleast1Polygon
总是返回
false
。当您执行
时,返回true
在lambda函数中,退出lambda并返回
PointLiesWithinAtleast1Polygon
函数

Java版本

函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
用于(GMSPath多边形:多边形)
{ 
if(!GMSGeometryContainesLocation(点、多边形)){
返回false;
}
}
返回true;
}
正如您在评论中所说,您可以在匿名函数之外定义一个布尔值,也可以使用普通
for loop
并检查是否符合条件

在Typescript中,您可以使用
Array
every
方法检查每个对象是否具有特定的条件

函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
返回多边形。每个((多边形:GMSPath)=>{
返回GMSGeometryContainesLocation(点、多边形);
});
}

该方法
点为最小1多边形
始终返回
false
。当您执行
时,返回true
在lambda函数中,退出lambda并返回
PointLiesWithinAtleast1Polygon
函数

Java版本

函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
用于(GMSPath多边形:多边形)
{ 
if(!GMSGeometryContainesLocation(点、多边形)){
返回false;
}
}
返回true;
}
正如您在评论中所说,您可以在匿名函数之外定义一个布尔值,也可以使用普通
for loop
并检查是否符合条件

在Typescript中,您可以使用
Array
every
方法检查每个对象是否具有特定的条件

函数点位于最短的1个多边形(点:CLLocationCoordinate2D,多边形:数组){
返回多边形。每个((多边形:GMSPath)=>{
返回GMSGeometryContainesLocation(点、多边形);
});
}

该方法
PointLiesWithinAtleast1Polygon
始终返回
false
。当您执行
时,返回true
在lambda函数中,退出lambda并返回
PointLiesWithinAtleast1Polygon
函数。@Marco,我需要在匿名函数之外定义一个bool。谢谢您可以使用常规for in循环而不是forEach lambda。方法
PointLiesWithinAtleast1Polygon
始终返回
false
。当您执行
时,返回true
在lambda函数中,退出lambda并返回
PointLiesWithinAtleast1Polygon
函数。@Marco,我需要在匿名函数之外定义一个bool。谢谢您可以使用常规for in循环而不是forEach lambda。在我接受您的答案之前,我必须指出typescript不允许for循环使用这种语法。这看起来更像Java。糟糕的是,我还没有检查你问题的标签。我更新了我的答案,加入了一个typescript的例子。如果有人有同样的问题,但在Java中,我不会删除Java的示例。在typescript中有
数组的
每一个
方法,它将完全执行您想要的操作;)谢谢我不知道每一个功能。我在这里一直学到新东西。谢谢在我接受你的答案之前,我必须指出typescript不允许for循环使用这种语法。这看起来更像Java。糟糕的是,我还没有检查你问题的标签。我更新了我的答案,加入了一个typescript的例子。如果有人有同样的问题,但在Java中,我不会删除Java的示例。在typescript中有
数组的
每一个
方法,它将完全执行您想要的操作;)谢谢我不知道每一个功能。我在这里一直学到新东西。谢谢