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...