js的filter使用
假设一个小问题:
有一个公交车站,公交车站停了很多辆公交车,每个公交车都有乘客,乘客年龄不同。如果一辆车上乘客年龄都在18岁以下,可以叫这辆车为青春车,问青春车在该车站的比例。
刚开始的想法:
1 youngUser = 0 2 youngCar = 0 3 cars.forEach(car => { 4 car.users.forEach(user => { 5 if (user.age <= 18) { 6 youngUser = youngUser + 1 7 } 8 }) 9 //判断车上总人数和车上年龄小于18岁的人数是否相等 10 if(youngUser.lenth === car.users.length){ 11 youngCar = youngCar + 1 12 } 13 }) 14 console.log('result:'youngCar/cars.length)
使用filter:
1 const youngCar= cars.filter(car => { 2 return car.users.length === car.users.filter(user => { return user.age <= 18}).length 3 }) 4 console.log(youngCar.length/cars.length)
完结