我得到了以下代码,我试图在发送到组件之前在主对象中过滤掉“ asia”对象。但是它没有被过滤。
let MainObject = [{property1: "asia", value:1},{property1: "US", value:2},{property1: "asia", value:3}]
let FilteringParameter = ["asia", "EU"]
<Calendar
events={MainObject.filter(
itemX => !FilteringParameter.includes(itemX.property1)
)}
/>
答案 0 :(得分:1)
如果我正确理解了您的问题,是否可以通过以下方式来实现此过滤?在以下情况下,这意味着events
仅包括来自MainObject
的具有property1: "asia"
键/值对的项目:
如果提供了空数组的过滤器参数,则修改后的答案将允许MainObject
中的所有项目返回过滤后的结果:
const MainObject = [{property1: "asia", value:1},{property1: "US", value:2},{property1: "asia", value:3}];
function filterByParameters(parameters) {
return MainObject.filter(itemX => parameters.length === 0 || parameters.find(parameter => parameter === itemX.property1))
}
var events = [];
// With parameters
events = filterByParameters(["asia", "EU"]);
console.log('With parameters including "asia"', events);
// With no parameters
events = filterByParameters([]);
console.log('With no parameters', events);