Професионална програма
Loading...
+ Нов въпрос
Losko avatar Losko 69 Точки

[JavaScript Fundamentals][Lab: Arrays and Matrices]: 07. Smallest Two Numbers

Здравейте колеги.
Имам проблем с тази задача., опитах да я реша по няколко начина, но трети и четвърти тест все гърмят.
Моето решение  

Опитах всякакви тестове за които се сетих, но без успех.

Тагове:
0
JavaScript Fundamentals 06/06/2017 11:08:29
S.Georgiev91 avatar S.Georgiev91 37 Точки

Eто как съм го решил аз : 

function smallestTwo(arr) {
    arr.sort((a, b) => a-b);
    let result = arr.slice(0, 2);
    return result.join(' ');
}

С две думи - сортираш се масива и взимаш само първите два елемента, не е нужно да сравняваш всичко. 

 

1
Losko avatar Losko 69 Точки

Ок, но така ако имаме две еднакви числа, ще върнем тях? Нали така ?
Ппри [1, 2, 1, 3 ,4...] : Това би върнало след сортирането  (1 1). ?

0
S.Georgiev91 avatar S.Georgiev91 37 Точки

Съгласен съм, но в задача не посочено двете най- малки и различни числа, така че [1,1] си е верен отговор. 

0
JivkoJelev avatar JivkoJelev 235 Точки

Защо правиш проверка и за двете най-малки числа , като можеш да проверяваш един път? 
function solve(arr){   

 arr = arr.sort(function (a,b) {return a - b;})
    return arr[0] + " " + arr[1];
}

Ето ти един вариант в който спестяваш доста код.

2
04/06/2017 14:35:33
Kiril98 avatar Kiril98 66 Точки

Здравей!

В първият ти вариант пропускаш факта, че може да ти се даде масив от еднакви числа и съответно накрая small променливата

ти става Number.MAX_SAFE_INTEGER. Другото което е че може да ти се подаде масив от един елемент и е преопръчително да се ползва slice функцията както колегата е написал по-нагоре.

0