I am trying to filter based on multiple values and only if they are not empty. Example:
jobsTracked = [
{
"company": "Company1",
"position": "Senior Frontend Developer",
"role": "Frontend",
"level": "Senior",
},
{
"company": "Company2",
"position": "Senior Frontend Developer",
"role": "Frontend",
"level": "Senior",
}]
I am trying to filter by 3 values in this example: position, role, level. And if position is empty string then i dont want to filter it but still want to filter by role and level if they arent empty string. And vice versa for all of them. Can the JavaScript filter function do this?
When you say "filtering", you mean something like this?
let slot;
let role = 'Frontend';
let level = 'Senior';
let position = 'Senior Frontend Developer';
let filtered = [];
let length = jobsTracked.length;
for (let i = 0; i < length; ++i) {
slot = jobsTracked[i];
// "The Filter"
if ((slot['role'] != '' && slot['role'] == role) &&
(slot['level'] != '' && slot['level'] == level) &&
(slot['position'] != '' && slot['position'] == position)) {
filtered.push(slot);
}
}
What this script does:
jobsTracked.filtered array.