tilbage til lektionen

Filtrer interval "in place"

vigtighed: 4

Skriv en funktion filterRangeInPlace(arr, a, b) der modtager et array arr og fjerner fra det alle værdier undtagen dem, der ligger mellem a og b. Testen er: a ≤ arr[i] ≤ b.

Funktionen skal kun ændre arrayet. Den må ikke returnere noget.

For instance:

let arr = [5, 3, 8, 1];

filterRangeInPlace(arr, 1, 4); // fjernede alle tal undtaget dem fra 1 til 4

alert( arr ); // [3, 1]

Åbn en sandbox med tests.

function filterRangeInPlace(arr, a, b) {

  for (let i = 0; i < arr.length; i++) {
    let val = arr[i];

    // fjern hvis uden for intervallet
    if (val < a || val > b) {
      arr.splice(i, 1);
      i--;
    }
  }

}

let arr = [5, 3, 8, 1];

filterRangeInPlace(arr, 1, 4); // fjernede alle tal undtaget dem fra 1 til 4

alert( arr ); // [3, 1]

Åbn løsningen med tests i en sandbox.