我有一个如下的收藏

var航班= [{
    编号:1
    腿:[{
        carrierName:“飞马座”
    }]
},{
    编号:2
    腿:[{
        carrierName:'SunExpress'
    },{
        carrierName:'SunExpress'
    }]
},{
    id:3,
    腿:[{
        carrierName:“飞马座”
    },{
        carrierName:'SunExpress'
    }]
}]


我想过滤它,例如,carrierName ='Pegasus',那么我的结果是这样的

[{
    编号:1
    腿:[{
        carrierName:“飞马座”
    }]
},{
    id:3,
    腿:[{
        carrierName:“飞马座”
    },{
        carrierName:'SunExpress'
    }]
}]

最佳答案

只需检查飞行的某些航段是否包含carrierName

_.filter(flights, function(flight) {
    return _.chain(flight)
        .get('legs')
        .map('carrierName')
        .includes('Pegasus')
        .value()
});


用于检查值的arr

_.filter(flights, function(flight) {
    return _.chain(flight)
        .get('legs')
        .map('carrierName')
        .thru(function(names) {
            return _.every(valuesArr, function(val) { // _.some for OR, _.every for AND
                return _.includes(names, val);
            });
        })
        .value()
});

08-19 03:29