欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Map the Debris 轨道周期

程序员文章站 2022-05-14 08:43:39
返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期. 原数组中会包含格式化的对象内容,像这样 {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}]);