Javascript 使用lodash react js使用数组值筛选嵌套数据

Javascript 使用lodash react js使用数组值筛选嵌套数据,javascript,reactjs,lodash,Javascript,Reactjs,Lodash,考虑这个例子。我正在使用 如果只有一个id可以过滤,我想用location_id过滤上面的数据 var filterplaces = _.filter(data.places,{ location: [{ location_id: this.state.selectedLocationId}] }); 它返回正确的过滤数据。 知道问题是当存在多个位置id时,我应该如何将数组数据传递给筛选记录。 假设selectedLocationId将是具有locationid[2,5]的数组 谢谢你的帮助

考虑这个例子。我正在使用

如果只有一个id可以过滤,我想用location_id过滤上面的数据

var filterplaces = _.filter(data.places,{ location: [{ location_id: this.state.selectedLocationId}] });
它返回正确的过滤数据。 知道问题是当存在多个位置id时,我应该如何将数组数据传递给筛选记录。 假设selectedLocationId将是具有locationid[2,5]的数组

谢谢你的帮助
提前感谢。

您可以不用洛达斯:

data.places.forEach(元素=>
element.location.filter(obj=>required_id.indexOf(obj.location_id)>-1).长度
&&过滤器位置。推动(元件)
);
var数据={
“地点”:[{
地点:1,,
地名:“123”,
地点:[{
地点_id:1,,
地点名称:“xyz”
},
{
地点_id:2,,
地点名称:“abc”
},
{
地点_id:3,,
地点名称:“等”
},
]
},
{
地点:2,,
地名:“456”,
地点:[{
地点_id:1,,
地点名称:“xyz”
},
{
地点_id:3,,
地点名称:“abc”
},
{
地点_id:4,,
地点名称:“等”
},
]
},
{
地点:3,,
地名:“123”,
地点:[{
地点_id:5,,
地点名称:“xyz”
},
{
地点_id:6,,
地点名称:“abc”
},
{
地点_id:2,,
地点名称:“等”
},
]
}
]
};
设所需的_id=[1,2];
var filterplaces=[];
data.places.forEach(element=>element.location.filter(obj=>required_id.indexOf(obj.location_id)>-1)、length&&filterplaces.push(element));
控制台日志(过滤器位置)您可以使用:


希望这有助于

迭代集合的元素,返回谓词返回truthy for的所有元素的数组。谓词由三个参数调用:(value、index | key、collection)。 注意:与u.remove不同,此方法返回一个新数组

var filter = _.filter(data.places, function(p) {
  if (p.length === 1) {
// write logic to return true or not if locaion is onnly 1
} else {
// write logic for more than 1 location id 
}
});

有关更多详细信息

shry其返回匹配位置,我需要包含所需位置ID的完整位置对象。
const filteredPlaces=data.places.filter(element=>element.location.some(/**/)将更加高效和清晰。
var filterplaces = _.filter(data.places, function(place) {
  return this.state.selectedLocationIds.indexOf(place.location.location_id) >= 0;
});
var filter = _.filter(data.places, function(p) {
  if (p.length === 1) {
// write logic to return true or not if locaion is onnly 1
} else {
// write logic for more than 1 location id 
}
});