假设您有一个JSON数组,您的任务需要用六种不同类型的值动态过滤数组。这些值将动态存储到JSON对象中。如果对象值更改您需要推动新条件。
我的工作过程:
- 声明一个阵列,我们可以推动我们的条件。
- 如果条件匹配,则将新条件推入该数组。
- 然后过滤数据并使用每个功能检查每个条件
const [formdata, setFormdata] = useState({});
##handle onchange
setFormdata({ ...formdata,
[e.target.name]: e.target.value
});
let conditions = []
if (formdata.geography) {
conditions.push(function (item) {
return item.geography === formdata.geography;
});
};
if (formdata.traffic_type) {
conditions.push(function (item) {
return item.trafficType === formdata.traffic_type;
});
};
if (formdata.task_type) {
conditions.push(function (item) {
return item.taskType === formdata.task_type;
})
};
if (formdata.status_type) {
conditions.push(function (item) {
return item.statusType === formdata.status_type;
})
}
if (formdata.rev_type){
conditions.push(function (item) {
return item.revType === formdata.rev_type;
})
}
if (formdata.device_type){
conditions.push(function (item) {
return item.deviceType === formdata.device_type;
})
}
const itemsMatchingCondition = campaigns.filter(d =>
conditions.every(c => c(d)));
console.log(itemsMatchingCondition);
注意:如果您有任何问题,请随时敲我。我很高兴与您贡献。