オブジェクトの緯度と経度の距離がユーザーの選択範囲内にあるかどうかを調べるために、配列内のオブジェクトを検索するフィルタがあります。しかし問題は、オブジェクトの中には緯度と経度の属性がまったくないことが原因で、これによってフィルタが壊れてしまうことです。緯度と経度がない場合は、オブジェクトを「スキップ」する方法はありますか?またはその緯度と経度が0の場合angularjs欠けている属性がある場合はスキップする
コード:
function distanceFromFunc(distanceFrom) {
var m;
var n;
var positionContainer = [];
var docLat;
var docLon;
var rowIdFromObj;
var rowObj;
var rowsArray;
if (distanceFrom === "1") {
vm.selectedRadius = 1609.344 //1 mile
} else if (distanceFrom === "2") {
vm.selectedRadius = 3218.688 //2 miles
} else if (distanceFrom === "5") {
vm.selectedRadius = 8046.720 //5 miles
} else if (distanceFrom === "10") {
vm.selectedRadius = 16093.440 //10 miles
} else if (distanceFrom === "20") {
vm.selectedRadius = 32186.880 //20 miles
} else if (distanceFrom === "50") {
vm.selectedRadius = 80467.200 //50 miles
} else if (distanceFrom === "999999") {
vm.selectedRadius = 0
};
//THE PROBLEM HERE IS THAT WHEN IT HITS A RECORD WITHOUT LAT AND LONG
//THE FUNCTION BREAKS
function filterByDist(value) {
console.log("VALUE IS ------>" + JSON.stringify(value));
var dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);
if (dist <= distanceFrom) {
console.log("the dist is: " + dist);
return value
};
};
var digestedArray = originalData2.filter(filterByDist)
$scope.locatorGridData = digestedArray;
}; //end func
私はそれがこの行に壊れ信じ:var dist = distance(myLat, myLon, value.locations[0].Lat, value.locations[0].Long);