返回一個數組,其內容是把原數組中對應元素的平均海拔轉換成其對應的軌道周期. 原數組中會包含格式化的對象內容,像這樣 {name: 'name', avgAlt: avgAlt}. 至於軌道周期怎麼求,戳這裡 on wikipedia (不想看英文的話可以自行搜索以軌道高度計算軌道周期的公式). 求得 ...
返回一個數組,其內容是把原數組中對應元素的平均海拔轉換成其對應的軌道周期.
原數組中會包含格式化的對象內容,像這樣 {name: 'name', avgAlt: avgAlt}
.
至於軌道周期怎麼求,戳這裡 on wikipedia (不想看英文的話可以自行搜索以軌道高度計算軌道周期的公式).
求得的值應該是一個與其最接近的整數,軌道是以地球為基準的.
地球半徑是 6367.4447 kilometers, 地球的GM值是 398600.4418,
圓周率為 Math.PI
i 進行開方運算 Math.sqrt(i)
返回 x 的 y 次冪 Math.pow(x, y)
四捨五入Math.round()
orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}])
應該返回 [{name: "sputnik", orbitalPeriod: 86400}]
.
orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}])
應該返回 [{name : "iss", orbitalPeriod: 5557}, {name: "hubble", orbitalPeriod: 5734}, {name: "moon", orbitalPeriod: 2377399}]
.
function orbitalPeriod(arr) { // T=2π√(r³/GM) var GM = 398600.4418; var earthRadius = 6367.4447; for(var i = 0;i < arr.length; i++){ var r = earthRadius + arr[i].avgAlt; arr[i].orbitalPeriod = Math.round(2 * Math.PI * Math.sqrt(Math.pow(r, 3)/GM)); delete arr[i].avgAlt; } return arr; } orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}]);