05. Youngest person


0
function solve (array){
  var ages = [],
      age = 0,
      index = 0,
      j = 0;
   
    for (var i = 2; i < array.length; i += 3) {
      while(j < array.length / 3) {
        ages[j] = array[i];
        j += 1;
        break;
      }
    }

    function smallestAge(ages){
        ages.sort(function(a, b) {return a-b;});
      return ages;
      }
    index = array.indexOf(ages[0]);

    console.log(array[index - 2] + ' ' + array[index - 1]);
  }

Защо в БГкодер ми изкарва 20/100 точки?

   



Отговори



0

Забравяш да преобразуваш стринга в число

ages[j] = array[i];

трябва да стане

ages[j] = +array[i];

По-чистото решение е да вземеш първата тройка данни за стартова, и да почнеш да ровиш нататаък. Ако намериш по-млад човек, запомняш му имената и слагаш възрастта му за "най-малката досега". Така накрая ще имаш имената на най-младия. Няма да ти трябва допълнителен масив, няма да ти трябва сортиране:

function solve (array){
  var minage = +array[2], firstname = array[0], lastname = array[1];
  for (var i = 5; i < array.length; i+=3){
    if (+array[i] < minage) {
      minage = +array[i];
      firstname = array[i-2];
      lastname = array[i-1];
    }
  }
  console.log(firstname + " " + lastname);
}

 100 / 100Памет: 14.95 MB 
Време: 0.109 s


от JulianG (5316 точки)