Нужно отфильтровать массивы по промежуткам

У каждого курса есть цена, которая является диапазоном. Как можно отфильтровать список курсов, чтобы выдались только подходящие по цене?

// Список курсов
let courses = [
    { name: "Courses in England", prices: [0, 100] }, 
    { name: "Courses in Germany", prices: [500, null] }, 
    { name: "Courses in Italy", prices: [100, 200] }, 
    { name: "Courses in Russia", prices: [null, 400] },
    { name: "Courses in China", prices: [50, 250] },
    { name: "Courses in USA", prices: [200, null] },
    { name: "Courses in Kazakhstan", prices: [56, 324] },
    { name: "Courses in France", prices: [null, null] },
];

// Варианты цен (фильтры), которые ищет пользователь
let requiredRange1 = [null, 200];
let requiredRange2 = [100, 350];
let requiredRange3 = [200, null];

Я смогла дойти только до такого варианта. Заменила null на значения, но дальше не понимаю, что делать.

       let courses = [
    { name: "Courses in England", prices: [0, 100] }, 
    { name: "Courses in Germany", prices: [500, Infinity] }, 
    { name: "Courses in Italy", prices: [100, 200] }, 
    { name: "Courses in Russia", prices: [0, 400] },
    { name: "Courses in China", prices: [50, 250] },
    { name: "Courses in USA", prices: [200, Infinity] },
    { name: "Courses in Kazakhstan", prices: [56, 324] },
    { name: "Courses in France", prices: [0, Infinity] },
];

let requiredRange1 = [0, 200];
let requiredRange2 = [100, 350];
let requiredRange3 = [200, Infinity];

function toTwoHundred (arr) {
const temp = JSON.parse(JSON.stringify(arr));
 
temp.forEach( item => {
    let filtered = item.prices.filter(n => n <= 200);
    console.log(filtered);

});
}

toTwoHundred(courses);

Ответы (0 шт):