使用范围列表过滤数字列表



我有一个年龄列表和一个年龄范围列表,使用javascript我试图过滤年龄落在任何

我得到了一个单一的ageRanges工作的代码,但我怎么能做到这一点,如果ageRanges是一个数组?

单个ageRange的代码示例:

var ages = [32, 33, 16, 22, 40];
var ageRanges = {min: 10, max:23};
function checkAdult(age) {
return age >= ageRanges.min && age <= ageRanges.max;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
} //returns 16,22

我要过滤的数据示例:

var ages = [32, 33, 16, 22, 40];
var ageRanges = [{min: 10, max:23},{min:30, max:36},{min:44, max:49}];

我试着做一个for循环,但努力得到它的权利,因为我绝对是新的这一切,所以任何帮助将不胜感激。如果有更好的方法来表示范围列表

,我可以很容易地以不同的方式格式化ageRanges数据。

所以,使用Array.prototype.some()Array.prototype.filter():

const ages = [32, 33, 16, 22, 40],
ageRanges = [{min: 10, max:23},{min:30, max:36},{min:44, max:49}],

result = ages.filter(age => 
ageRanges.some(({min,max}) => 
age >= min && age <= max))

console.log(result)

最新更新