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.