尝试过滤传递给组件reactjs的对象

时间:2018-10-24 22:37:40

标签: reactjs

我得到了以下代码,我试图在发送到组件之前在主对象中过滤掉“ 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)
                        )}
                      />

1 个答案:

答案 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);