我想让我的循环中的条件值以条件的返回值为基础:
{
"latlng": {
"lat": 40.736526195302844,
"lng": -73.76140508510238
},
"topography":{ "elevation": 30.600000000000364,
"slope": 1.6597018254049931,
"aspect": 162.64597536455346,
"resolution": 57.85277886769637
}
}
function MakeRoute(highestEl, n) {
let startPointsForClosest = [];
startPointsForClosest[0] = highestEl;
for (let i = 0; i < topographyData.length - 1; i++) {
if (
startPointsForClosest[i]?.topography.elevation >=
topographyData[i]?.topography.elevation - n
) {
startPointsForClosest.push(topographyData[i]);
}
}
return startPointsForClosest;
}
MakeRoute({
"latlng": {
"lat": 40.738800829681864,
"lng": -73.7568126408477
},
"topography": {
"elevation": 38.600000000000364,
"slope": 1.3792065335718062,
"aspect": 111.03751102530578,
"resolution": 57.85092357410129
}}, n)
当然,在第一次迭代时,我开始的值是这样的:
startPointsForClosest[0] = highestEl;
我想要的是每个dataObject在startPointsForClosest 数组中的下一个值的基础上有一个海拔的下降,n 。
然而,这是我得到的结果
这是我得到的结果:
[ { "latlng": { "lat": 40.738800829681864, "lng": -73.7568126408477 }, "topography": { "elevation": 38.600000000000364, "slope": 1.3792065335718062, "aspect": 111.03751102530578, "resolution": 57.85092357410129 } }, { "latlng": { "lat": 40.741588319997106, "lng": -73.76029372856034 }, "topography": { "elevation": 30.700000000000728, "slope": 1.9044574779242354, "aspect": 188.9726266146405, "resolution": 57.84851723771878 } }]
不知道为什么这个函数在两个对象上就停止了。但我至少应该得到一个海拔属性为36.600000000000364 的对象?
希望得到任何帮助。