Filter Array based

by Bianca Kuehweidner

HTML

<div class="item" data-stopamountsegment1="2" data-maxstopdurationsegment1="3" data-departuretimesegment1="10:00" data-arrivaltimesegment1="16:00" data-airlinecode="LH">Div 1</div>
<div class="item" data-stopamountsegment2="2" data-maxstopdurationsegment2="3" data-departuretimesegment2="09:00" data-arrivaltimesegment2="13:00" data-airlinecode="LH">Div 2</div>
<div class="item" data-stopamountsegment3="1" data-maxstopdurationsegment3="3" data-departuretimesegment3="13:00" data-arrivaltimesegment3="19:00" data-airlinecode="LH">Div 3</div>

<input type="checkbox" value="LH" id="select__Airlines_LH" checked /> <label for="select__Airlines_LH">LH</label>
<input type="checkbox" value="LH" id="select__Airlines_AA" /> <label for="select__Airlines_AA">AA</label>

JavaScript

/* N: used to generate N initial values as arrays */
const SEGMENT_COUNT = 3;


/* contains dynamically generated arrays */
var generatedData = { 
  elementsCount: 0, 
  stopamountsegment: [], 
  maxstopdurationsegment: [],
  departuretimesegment: [],
  arrivaltimesegment: []
};


/* Generate dynamic variables:
Creates an array per Segment-based variable inside SegmentBasedArrays. These arrays are each filled with elementsCount elements (so that elements can be index from 0 to elementsCount-1 ). */
function generateValues(SegmentBasedArrays, elementsCount) {
  for (let i = 0; i < elementsCount; i++) {
    SegmentBasedArrays.stopamountsegment[i] = i+1;
    SegmentBasedArrays.maxstopdurationsegment[i] = i+1;
    SegmentBasedArrays.departuretimesegment[i] = i+1;
    SegmentBasedArrays.arrivaltimesegment[i] = i+1;    
  }
  SegmentBasedArrays.elementsCount = elementsCount;
}



function modifyValues() {
  generatedData.stopamountsegment[0] = $(this).data("stopamountsegment1");
  generatedData.stopamountsegment[1] = $(this).data("stopamountsegment2");
  generatedData.stopamountsegment[2] = $(this).data("stopamountsegment3");
  generatedData.maxstopdurationsegment[0] = $(this).data("maxstopdurationsegment1");
  generatedData.maxstopdurationsegment[1] = $(this).data("maxstopdurationsegment2");
  generatedData.maxstopdurationsegment[2] = $(this).data("maxstopdurationsegment3");
  generatedData.departuretimesegment[0] = $(this).data("departuretimesegment1");
  generatedData.departuretimesegment[1] = $(this).data("departuretimesegment2");
  generatedData.departuretimesegment[2] = $(this).data("departuretimesegment3");
  generatedData.arrivaltimesegment[0] = $(this).data("arrivaltimesegment1");
  generatedData.arrivaltimesegment[1] = $(this).data("arrivaltimesegment2");
  generatedData.arrivaltimesegment[2] = $(this).data("arrivaltimesegment3");
}

/* filter DIVs with class "item" based on matching sampleMusterArrays to corresponding data-values */
function...