gpt4 book ai didi

javascript - 如果对象缺少属性,AngularJS 会跳过该对象

转载 作者:行者123 更新时间:2023-11-28 18:10:25 25 4
gpt4 key购买 nike

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

代码:

    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);

最佳答案

应该能够将有问题的行修改为:

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);
}

关于javascript - 如果对象缺少属性,AngularJS 会跳过该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41723195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com