Javascript 如果对象缺少属性,angularjs将跳过该对象

Javascript 如果对象缺少属性,angularjs将跳过该对象,javascript,angularjs,Javascript,Angularjs,我有一个过滤器,可以查看数组中的对象,查看对象的纬度和经度的距离是否在用户选择的范围内。但是,问题是某些对象根本没有纬度和经度属性,这会破坏过滤器。如果对象没有lat和long,是否有方法“跳过”该对象?或者如果其lat和long为0 代码: 函数distanceFromFunc(distanceFrom){ var-m; var n; var positionContainer=[]; var docLat; 多克伦变种; var rowIdFromObj; var rowObj; var r

我有一个过滤器,可以查看数组中的对象,查看对象的纬度和经度的距离是否在用户选择的范围内。但是,问题是某些对象根本没有纬度和经度属性,这会破坏过滤器。如果对象没有lat和long,是否有方法“跳过”该对象?或者如果其lat和long为0

代码:

函数distanceFromFunc(distanceFrom){
var-m;
var n;
var positionContainer=[];
var docLat;
多克伦变种;
var rowIdFromObj;
var rowObj;
var rowsArray;
如果(距离==“1”){
vm.selectedRadius=1609.344//1英里
}else if(距离==“2”){
vm.selectedRadius=3218.688//2英里
}else if(距离==“5”){
vm.selectedRadius=8046.720//5英里
}否则如果(距离==“10”){
vm.selectedRadius=16093.440//10英里
}else if(距离==“20”){
vm.selectedRadius=32186.880//20英里
}否则如果(距离==“50”){
vm.selectedRadius=80467.200//50英里
}else if(distanceFrom==“999999”){
vm.selectedRadius=0
};
//这里的问题是,当它达到一个记录,没有LAT和LONG
//函数中断
函数filterByList(值){
log(“值为------->”+JSON.stringify(值));
var dist=距离(myLat,myLon,value.locations[0]。Lat,value.locations[0]。Long);

如果(dist在进行distance方法调用之前只需进行一点检查:

function filterByDist(value) {
  if (value.locations[0].Lat && value.locations[0].Long) {
    var dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);
    if (dist <= distanceFrom) {
      return value
    }
  }
}
function filterByList(值){
if(value.locations[0].Lat&&value.locations[0].Long){
var dist=距离(myLat,myLon,value.locations[0]。Lat,value.locations[0]。Long);

如果(dist在进行distance方法调用之前只需进行一点检查:

function filterByDist(value) {
  if (value.locations[0].Lat && value.locations[0].Long) {
    var dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);
    if (dist <= distanceFrom) {
      return value
    }
  }
}
function filterByList(值){
if(value.locations[0].Lat&&value.locations[0].Long){
var dist=距离(myLat,myLon,value.locations[0]。Lat,value.locations[0]。Long);

if(dist应能将违规行修改为:

var dist;
if (value.locations && value.locations.length &&
    value.locations[0].Lat && value.locations[0].Long){
    dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);
}

应该能够将违规行修改为:

var dist;
if (value.locations && value.locations.length &&
    value.locations[0].Lat && value.locations[0].Long){
    dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);
}

以下代码检查是否:

  • 值。已定义位置

  • Lat
    Long
    存在

仅当满足这些条件时,才计算距离

if(value && value.locations.length && value.locations[0].Lat && value.locations[0].Long) {
     // Calculate distance
}

以下代码检查是否:

  • 值。已定义位置

  • Lat
    Long
    存在

仅当满足这些条件时,才计算距离

if(value && value.locations.length && value.locations[0].Lat && value.locations[0].Long) {
     // Calculate distance
}