我只想根据条件提取一个数组元素。
我试过Underscore.js方法,如 _.filter
和 _.where
方法,但我无法获得所需的输出。
为了更清楚地说明, 我不想要价格 > 80 的汽车对象。
我尝试使用下面的代码并得到一个空数组:
var carsArray = [{
"name": "Record1",
"bookings": [{
"price": 50,
"actualPrice": 70,
}]
}, {
"name": "Record2",
"bookings": [{
"price": 60,
"actualPrice": 100,
}]
}, {
"name": "Record3",
"bookings": [{
"price": 100,
"actualPrice": 110,
}]
}];
var availableCars = _.filter(carsArray, function (items) {
return _.filter(items, function (cars) {
return(cars.price <= 80);
});
});
最佳答案
这里是如何使用 underscorejs 来做到这一点
var availableCars = _.filter(carsArray, function(car) {
return _.any(car.bookings, function(booking) {
return booking.price <= 80;
});
});
这里是如何在 es6 中做到这一点
var availableCars = carsArray.filter(car => car.bookings.some(booking => booking.price <= 80));
这当然是如果一辆车可以进行多次预订,并且至少 1 次预订 <= 80 巴克罗尼
关于javascript - 如何使用 UnderscoreJS 进行条件过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483554/