Filter range "in place"
importance: 4
Ecrivez une fonction filterRangeInPlace(arr, a, b)
qui obtient un tableau arr
et en supprime toutes les valeurs, sauf celles comprises entre a
et b
. Le test est : a ≤ arr[i] ≤ b
.
La fonction doit juste modifier que le tableau. Elle ne doit rien retourner.
Par exemple :
let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // supprime les nombres qui ne sont pas entre 1 et 4
alert( arr ); // [3, 1]
function filterRangeInPlace(arr, a, b) {
for (let i = 0; i < arr.length; i++) {
let val = arr[i];
// enleve si en dehors de l'intervalle
if (val < a || val > b) {
arr.splice(i, 1);
i--;
}
}
}
let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // supprime les nombres sauf de 1 à 4
alert( arr ); // [3, 1]