要求
返回一個數組,其內容是把原數組中對應元素的平均海拔轉換成其對應的軌道周期.
原數組中會包含格式化的對象內容,像這樣{name: 'name', avgAlt: avgAlt}.
至于軌道周期怎么求,戳這里 on wikipedia (不想看英文的話可以自行搜索以軌道高度計算軌道周期的公式).
求得的值應該是一個與其最接近的整數,軌道是以地球為基準的.
地球半徑是 6367.4447 kilometers, 地球的GM值是 398600.4418, 圓周率為Math.PI
注意
向下取整:Math.floor()
向上取整:Math.round()
解答
function orbitalPeriod(arr) {
var pi=Math.PI;
var GM = 398600.4418;
var earthRadius = 6367.4447;
var r;
var T;//周期
for(i=0;i<arr.length;i++){
r=arr[i].avgAlt+earthRadius;
T=2*pi*Math.sqrt(Math.pow(r,3)/GM);
delete arr[i].avgAlt;
arr[i].orbitalPeriod=Math.round(T);
}
return arr;
}
orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}]);