Map the Debris (FCC高级算法)

返回一个数组,其内容是把原数组中对应元素的平均海拔转换成其对应的轨道周期.

原数组中会包含格式化的对象内容,像这样 {name: 'name', avgAlt: avgAlt}.

至于轨道周期怎么求,戳这里 on wikipedia (不想看英文的话可以自行搜索以轨道高度计算轨道周期的公式).

求得的值应该是一个与其最接近的整数,轨道是以地球为基准的.

地球半径是 6367.4447 kilometers, 地球的GM值是 398600.4418, 圆周率为Math.PI

 

这题重点是公式:

  

  从别人博客盗过来的 ,哈哈哈  我也不会这公式   , 这题的主要是要知道Math 中的 round pow sqrt等方法的作用。

代码如下:

function orbitalPeriod(arr) {
  var GM = 398600.4418;
  var earthRadius = 6367.4447;
  for(var key in arr){
      var height  = arr[key].avgAlt;
      delete arr[key].avgAlt;
      arr[key].orbitalPeriod = Math.round(2 * Math.PI * Math.sqrt( Math.pow((earthRadius+height),3) / GM));
  }
  return arr;
}

 

posted on 2018-01-11 09:26  辣条菌的思维屋i  阅读(358)  评论(0编辑  收藏  举报