javascript - 如何使用 UnderscoreJS 进行条件过滤

标签 javascript angularjs underscore.js

我只想根据条件提取一个数组元素。

我试过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/

相关文章:

javascript - 使用奇怪的 json 字段映射 json 对象,使用 lodash 按数字索引

javascript - Tablesorter 未对动态添加的内容进行排序

angularjs - 如何让 AdMob Pro 在 Ionic 中工作

angularjs - BreezeJSEntityManagerFactory未知提供者ASP.NET

javascript - 合并具有相同属性的数组对象

javascript - 将一组回调函数减少为一个回调

javascript - 循环数组后获取特定模式的结果

Javascript/JQuery - 如果达到一定大小,则在窗口调整大小时重定向

javascript - JQuery 中超出了最大调用堆栈大小,无法在 focusout 内触发下一个元素的焦点

javascript - 服务失败时如何解决状态