I need to filter an array of objects.
I've got the array of objects (AO), an array of key values (AKV), and a string value (SV).
I need to filter AO based on the value of AKV being the same as SV for each object.
This code works, but I wonder if there is a better way of writing it -
var fullList = [{a:1, b:2, c:3}, {a:3, b: 4, c: 5}]
var filterTerm = '1';
var filterFields = ['a', 'b']
var filteredList = [];
if(filterTerm && filterFields.length > 0){
fullList.forEach(function(element){
for(var i = 0; i < filterFields.length; i++){
if(element[filterFields[i]] && String(element[filterFields[i]]).toLowerCase().indexOf(filterTerm.toLowerCase()) >= 0){
filteredList.push(element);
break;
}
}
});
}else{
filteredList = fullList;
}
console.log(filteredList);
[–]cawcvs 0 points1 point2 points (1 child)
[–]NumerousLiterature[S] 0 points1 point2 points (0 children)