05. Extracting Non-Decreasing Sequence from Array
Имам 2 решения, които са ми се струват еднакви - едното е 100/100, другото е 60/100. Някой може ли да ми обясни каква е разликата между тях?
100/100:
function  extract(input) {
    input = input.map(Number);
    let arr = [];
    let biggest;
    input.forEach(function(e){
        if (biggest != undefined){
            if (e >= biggest){
                arr.push(e);
                biggest = e;
            }
        }
        else{
            biggest = e;
            arr.push(e);
        }
    });
    arr.forEach(e => console.log(e));
}
и 60/100
 
function  extract(input) {
    input = input.map(Number);
    let biggest = null;
    input.filter(function(e){
        if (biggest != undefined){
            if (e >= biggest){
                biggest = e;
                return e;
            }
        }
        else{
            biggest = e;
            return e;
        }
    }).forEach(e => console.log(e));
}
Не е това.
null == undefined връща true, != връща false.
Само с 3 равни би имало разлика:
null === undefined ще е false, !== връща true
А в моя случай така или иначе става дума за 3 минати и 2 неминати теста, а не за нещо, което генерално да чупи задачата каквото би било biggest да си остане без стойност до края.
Обясниха ми го - сортиращите функции трябва да връщат true/false, а не елемента, както е в моя случай, понеже иначе стават аномалии - в случая не хваща елементи със стойност 0.