Map the Debris(freecodecamp高级算法8)
Map the Debris
返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期.
原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: avgAlt}
.
以轨道高度计算轨道周期的公式
a:轨道的半长轴(m),μ = GM
求得的值应该是一个与其最接近的整数,轨道是以地球为基准的.
地球半径是 6367.4447 kilometers, 地球的GM值是 398600.4418, 圆周率为Math.PI
function orbitalPeriod(arr) { var GM = 398600.4418; var earthRadius = 6367.4447;var retArr = []; function calOrbital(avgAlt){ return Math.round(2 * Math.PI * (Math.sqrt(Math.pow(avgAlt + earthRadius,3)/GM))); //return Math.round(Math.pow(((4*(Math.pow(Math.PI, 2)) * Math.pow((avgAlt+earthRadius), 3))/GM), 0.5)); } for(var i=0;i<arr.length;i++){ var obj = {}; obj.name = arr[i].name; obj.orbitalPeriod = calOrbital(arr[i].avgAlt); retArr.push(obj); } return retArr; } orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]);