Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. var listItems = [{
  2. categories: ["lisboa","portugal", "oeiras"],
  3. id: "praia carcavelos",
  4. visible: false
  5. },
  6. {
  7. categories: ["amadora","portugal", "damaia"],
  8. id: "rua neudel",
  9. visible: false
  10. }];
  11.  
  12. var filterItems = [{
  13. category: "lisboa",
  14. group: "a",
  15. selected: false,
  16. active: true
  17. },
  18. {
  19. category: "portugal",
  20. group: "a",
  21. selected: false,
  22. active: true
  23. },
  24. {
  25. category: "damaia",
  26. group: "a",
  27. selected: false,
  28. active: true
  29. },
  30. {
  31. category: "oeiras",
  32. group: "b",
  33. selected: true,
  34. active: true
  35. },
  36. {
  37. category: "amadora",
  38. group: "b",
  39. selected: true,
  40. active: true
  41. }
  42. ];
  43.  
  44.  
  45. var groupBy = function(xs, key) {
  46. return xs.reduce(function(rv, x) {
  47. (rv[x[key]] = rv[x[key]] || []).push(x);
  48. return rv;
  49. }, {});
  50. };
  51.  
  52. var respects = function(listItem, filters){
  53. return true;
  54. }
  55.  
  56. var teste = function(groupedByFilters){
  57. debugger;
  58. listItems.forEach(function(listItem) {
  59. listItem.visible = true;
  60. for(let i = 0; i < groupedByFilters.length; i++){
  61. if(!respects(listItem, groupedByFilters[i])){
  62. listItem.visible = false;
  63. break;
  64. }
  65. }
  66. })
  67. }
  68.  
  69. var hasSelectedFilter = filterItems.find(function(element) {
  70. return element.selected;
  71. })
  72.  
  73. if(!hasSelectedFilter){
  74. listItems.forEach(function(element) {
  75. element.visible = true;
  76. });
  77. }else{
  78. var selectedFilters = filterItems.filter(x => x.selected);
  79. console.log("selected filter: " + selectedFilters[0].category);
  80. if(selectedFilters.length > 0){
  81. teste(groupBy(selectedFilters, 'group'));
  82. }
  83. // console.log(selectedFilter[0].category == listItems[1].categories[2]);
  84. }
  85.  
  86. console.log("Results:");
  87. listItems.forEach(function(element) {
  88. if(element.visible){
  89. console.log(element);
  90. }
  91. });
  92.  
  93. console.log("sdfsdfsdf");
  94. console.log(groupBy(filterItems, 'group'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement