我有一个年龄列表和一个年龄范围列表,使用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)