[
{
"Employee_Id": 252156,
"Active_Ind": true,
"EmployeeRoles": [
{
"Employee_Role_Id": 1,
"Employee_Role_Nm": "Tax Prep"
}
]
},
{
"Employee_Id": 252156,
"Active_Ind": true,
"EmployeeRoles": [
{
"Employee_Role_Id": 1,
"Employee_Role_Nm": "Tax Prep"
},
{
"Employee_Role_Id": 2,
"Employee_Role_Nm": "Tax Prep"
}
]
},
{
"Employee_Id": 252156,
"Active_Ind": true,
"EmployeeRoles": [
{
"Employee_Role_Id": 1,
"Employee_Role_Nm": "Tax Prep"
},
{
"Employee_Role_Id": 3,
"Employee_Role_Nm": "Tax Prep"
}
]
},
{
"Employee_Id": 252156,
"Active_Ind": false,
"EmployeeRoles": [
{
"Employee_Role_Id": 1,
"Employee_Role_Nm": "Tax Prep"
},
{
"Employee_Role_Id": 2,
"Employee_Role_Nm": "Tax Prep"
}
]
}
]
如何使用 _.filter 来过滤以下条件
1.Employee_Role_Id 1 或 3
2.Active_Ind 为 true
var activeEmployee = _.filter(employees, function (employee) {
return _.some(employee.Employee.EmployeeRoles, { 'Employee_Role_Id': 1 });
})
;
最佳答案
你可以这样做:
var employees = [{"Employee_Id": 252156,"Active_Ind": true,"EmployeeRoles": [{"Employee_Role_Id": 1,"Employee_Role_Nm": "Tax Prep"}]},{"Employee_Id": 252156,"Active_Ind": true,"EmployeeRoles": [{"Employee_Role_Id": 1,"Employee_Role_Nm": "Tax Prep"},{"Employee_Role_Id": 2,"Employee_Role_Nm": "Tax Prep"}]},{"Employee_Id": 252156,"Active_Ind": true,"EmployeeRoles": [{"Employee_Role_Id": 1,"Employee_Role_Nm": "Tax Prep"},{"Employee_Role_Id": 3,"Employee_Role_Nm": "Tax Prep"}]},{"Employee_Id": 252156,"Active_Ind": false,"EmployeeRoles": [{"Employee_Role_Id": 1,"Employee_Role_Nm": "Tax Prep"},{"Employee_Role_Id": 2,"Employee_Role_Nm": "Tax Prep"}]}],
activeEmployee = _.filter(employees, function (employee) {
return employee.Active_Ind && _.some(employee.EmployeeRoles, function(role) {
return 1 === role.Employee_Role_Id || 3 === role.Employee_Role_Id;
});
});
console.log(activeEmployee);
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
关于javascript - _Filrer 使用多个条件过滤 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43736900/