Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.
КупитьEPUB/PDF
Поделиться
вернуться к уроку

Фильтрация по диапазону "на месте"

важность: 4

Напишите функцию filterRangeInPlace(arr, a, b), которая принимает массив arr и удаляет из него все значения кроме тех, которые находятся между a и b. То есть, проверка имеет вид a ≤ arr[i] ≤ b.

Функция должна изменять принимаемый массив и ничего не возвращать.

Например:

let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // удалены числа вне диапазона 1..4
alert( arr ); // [3, 1]

Открыть песочницу с тестами для задачи.

function filterRangeInPlace(arr, a, b) {
 for (let i = 0; i < arr.length; i++) {
 let val = arr[i];
 // удалить, если за пределами интервала
 if (val < a || val > b) {
 arr.splice(i, 1);
 i--;
 }
 }
}
let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // удалены числа вне диапазона 1..4
alert( arr ); // [3, 1]

Открыть решение с тестами в песочнице.

AltStyle によって変換されたページ (->オリジナル) /