Javascript Lodash具有多个值数组的多键过滤器
我正在尝试使用lodash过滤器对象过滤多维对象。下面是过滤数据的示例对象Javascript Lodash具有多个值数组的多键过滤器,javascript,jquery,vue.js,lodash,Javascript,Jquery,Vue.js,Lodash,我正在尝试使用lodash过滤器对象过滤多维对象。下面是过滤数据的示例对象 { "0": { "details": { "rating": 2.5, "amenities": { "airConditioning": true, }, }, "rates": { "packages": [ { "refundable": "Yes", }
{
"0": {
"details": {
"rating": 2.5,
"amenities": {
"airConditioning": true,
},
},
"rates": {
"packages": [
{
"refundable": "Yes",
}
]
}
},
{
"1": {
"details": {
"rating": 3,
"amenities": {
"airConditioning": false,
},
},
"rates": {
"packages": [
{
"refundable": "Yes",
}
]
}
},
{
"2": {
"details": {
"rating": 2,
"amenities": {
"airConditioning": true,
},
},
"rates": {
"packages": [
{
"refundable": "No",
}
]
}
},
}
我试过了
console.log(_.filter( data, { 'details.rating': '2', 'details.rating': '3' } ));
_.filter(data, function (item) {
return ['2', '3'].indexOf(item.details.rating) >= 0
})
也跟着这个
没有工作您的JSON在键
“1”
和“2”
之前有额外的{
。因此,删除该键,它就会工作
var数据={
"0": {
“详情”:{
“评级”:2.5,
“便利设施”:{
“空调”:没错,
},
},
“费率”:{
“包”:[
{
“可退款”:“是”,
}
]
}
},
"1": {
“详情”:{
“评级”:3,
“便利设施”:{
“空调”:假,
},
},
“费率”:{
“包”:[
{
“可退款”:“是”,
}
]
}
},
"2": {
“详情”:{
“评级”:2,
“便利设施”:{
“空调”:没错,
},
},
“费率”:{
“包”:[
{
“可退款”:“否”,
}
]
}
}
};
变量结果=u2;.过滤器(数据,(项目)=>{
返回[2,3]。indexOf(item.details.rating)>=0
});
console.log(结果);
第一级A数组评级筛选正在工作,但便利设施子对象筛选不工作。我正在尝试筛选便利设施空调真集数组,我使用了_some(item.details.amentities,{airchiption:true})…但是它的返回错误我不明白你在说什么我的意思是我正在尝试过滤这个属性“item.details.professionals”=>{airchouting:true}。