Filter range "in place" / menyaring dengan jarak "secara langsung"
Tulis sebuah fungsi filteredRangeInPlace(arr, a, b)
yang mendapatkan array arr
dan menghilangkan seluruh nilai yang berada diantara a
dan b
. Testnya adalah: a ≤ arr[i] ≤ b
.
Fungsinya haruslah hanya memodifikasi arraynya. Itu harus tidak mengembalikan apapun.
For instance:
let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // hapus angka kecuali dari 1 to 4
alert( arr ); // [3, 1]
function filterRangeInPlace(arr, a, b) {
for (let i = 0; i < arr.length; i++) {
let val = arr[i];
// hilangkan jika berada diluar interval
if (val < a || val > b) {
arr.splice(i, 1);
i--;
}
}
}
let arr = [5, 3, 8, 1];
filterRangeInPlace(arr, 1, 4); // hilangkan angkanya kecuali dari 1 to 4
alert( arr ); // [3, 1]