2018-10-08 13:34:43 -04:00

3.0 KiB

id, title, localeTitle, challengeType
id title localeTitle challengeType
af4afb223120f7348cdfc9fd Map the Debris Mapa de los escombros 5

Description

Devuelve una nueva matriz que transforma la altitud promedio de los elementos en sus períodos orbitales (en segundos). La matriz contendrá objetos en el formato {name: 'name', avgAlt: avgAlt} . Puedes leer sobre periodos orbitales en Wikipedia . Los valores deben redondearse al número entero más cercano. El cuerpo que está siendo orbitado es la Tierra. El radio de la Tierra es 6367.4447 kilómetros, y el valor GM de la Tierra es 398600.4418 km 3 s -2 . Recuerda usar Read-Search-Ask si te atascas. Trate de emparejar el programa. Escribe tu propio código.

Instructions

Tests

tests:
  - text: &#39; <code>orbitalPeriod([{name : &quot;sputnik&quot;, avgAlt : 35873.5553}])</code> debe devolver <code>[{name: &quot;sputnik&quot;, orbitalPeriod: 86400}]</code> .&#39;
    testString: 'assert.deepEqual(orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]), [{name: "sputnik", orbitalPeriod: 86400}], "<code>orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}])</code> should return <code>[{name: "sputnik", orbitalPeriod: 86400}]</code>.");'
  - text: &#39; <code>orbitalPeriod([{name: &quot;iss&quot;, avgAlt: 413.6}, {name: &quot;hubble&quot;, avgAlt: 556.7}, {name: &quot;moon&quot;, avgAlt: 378632.553}])</code> debe devolver <code>[{name : &quot;iss&quot;, orbitalPeriod: 5557}, {name: &quot;hubble&quot;, orbitalPeriod: 5734}, {name: &quot;moon&quot;, orbitalPeriod: 2377399}]</code> . &#39;
    testString: 'assert.deepEqual(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}], "<code>orbitalPeriod([{name: "iss", avgAlt: 413.6}, {name: "hubble", avgAlt: 556.7}, {name: "moon", avgAlt: 378632.553}])</code> should return <code>[{name : "iss", orbitalPeriod: 5557}, {name: "hubble", orbitalPeriod: 5734}, {name: "moon", orbitalPeriod: 2377399}]</code>.");'

Challenge Seed

function orbitalPeriod(arr) {
  var GM = 398600.4418;
  var earthRadius = 6367.4447;
  return arr;
}

orbitalPeriod([{name : "sputnik", avgAlt : 35873.5553}]);

Solution

function orbitalPeriod(arr) {
  var GM = 398600.4418;
  var earthRadius = 6367.4447;
  var TAU = 2 * Math.PI;
  return arr.map(function(obj) {
    return {
      name: obj.name,
      orbitalPeriod: Math.round(TAU * Math.sqrt(Math.pow(obj.avgAlt+earthRadius, 3)/GM))
    };
  });
}

orbitalPeriod([{name : "sputkin", avgAlt : 35873.5553}]);