function(){ return function getFromDataLayer(keyToObtain, eventValueToFilter, expectedValue){ var result = undefined; try{ var events = window.dataLayer.filter( function(e){ var isEvent = true; var isExpectedValue = true; var value = e[keyToObtain]; if(eventValueToFilter != undefined){ isEvent = e['event'] === eventValueToFilter; } if(expectedValue != undefined){ isExpectedValue = value === expectedValue } return isEvent && isExpectedValue && value != undefined; }); if(events.length > 0){ result = events.pop()[keyToObtain]; } }catch(e){} return result; } }