Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var listItems = [{
- categories: ["lisboa","portugal", "oeiras"],
- id: "praia carcavelos",
- visible: false
- },
- {
- categories: ["amadora","portugal", "damaia"],
- id: "rua neudel",
- visible: false
- }];
- var filterItems = [{
- category: "lisboa",
- group: "a",
- selected: false,
- active: true
- },
- {
- category: "portugal",
- group: "a",
- selected: false,
- active: true
- },
- {
- category: "damaia",
- group: "a",
- selected: false,
- active: true
- },
- {
- category: "oeiras",
- group: "b",
- selected: true,
- active: true
- },
- {
- category: "amadora",
- group: "b",
- selected: true,
- active: true
- }
- ];
- var groupBy = function(xs, key) {
- return xs.reduce(function(rv, x) {
- (rv[x[key]] = rv[x[key]] || []).push(x);
- return rv;
- }, {});
- };
- var respects = function(listItem, filters){
- return true;
- }
- var teste = function(groupedByFilters){
- debugger;
- listItems.forEach(function(listItem) {
- listItem.visible = true;
- for(let i = 0; i < groupedByFilters.length; i++){
- if(!respects(listItem, groupedByFilters[i])){
- listItem.visible = false;
- break;
- }
- }
- })
- }
- var hasSelectedFilter = filterItems.find(function(element) {
- return element.selected;
- })
- if(!hasSelectedFilter){
- listItems.forEach(function(element) {
- element.visible = true;
- });
- }else{
- var selectedFilters = filterItems.filter(x => x.selected);
- console.log("selected filter: " + selectedFilters[0].category);
- if(selectedFilters.length > 0){
- teste(groupBy(selectedFilters, 'group'));
- }
- // console.log(selectedFilter[0].category == listItems[1].categories[2]);
- }
- console.log("Results:");
- listItems.forEach(function(element) {
- if(element.visible){
- console.log(element);
- }
- });
- console.log("sdfsdfsdf");
- console.log(groupBy(filterItems, 'group'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement