Filtrace podle rozsahu „na místě“
důležitost: 4
Napište funkci filtrujPodleRozsahuNaMístě(pole, a, b), která obdrží pole pole a odstraní z něj všechny hodnoty, které neleží mezi a a b. Test je: a ≤ pole[i] ≤ b.
Funkce by měla jen modifikovat pole. Neměla by nic vracet.
Příklad:
let pole = [5, 3, 8, 1];
filtrujPodleRozsahuNaMístě(pole, 1, 4); // odstraní čísla, která nejsou od 1 do 4
alert( pole ); // [3, 1]
function filtrujPodleRozsahuNaMístě(pole, a, b) {
for (let i = 0; i < pole.length; i++) {
let hodnota = pole[i];
// odstraní hodnotu, jestliže je mimo interval
if (hodnota < a || hodnota > b) {
pole.splice(i, 1);
i--;
}
}
}
let testovacíPole = [5, 3, 8, 1];
filtrujPodleRozsahuNaMístě(testovacíPole, 1, 4); // odstraní čísla, která nejsou od 1 do 4
alert( testovacíPole ); // [3, 1]