Egy gondolat ehhez a megoldáshoz. Ennél az adott use case-nél (attribútumok nem változnak betöltés után, "statikus" a HTML) lehet, hogy érdemesebb inkább a
if (typeof window[scriptem] === 'function') {
window[scriptem].apply(undefined, paramétereim)
}
részbe tenni az event listener ráaggatását, mert akkor nem kell a listenernek minden kattintáskor végigszűrni-mappelni a datasetet:
if (typeof window[scriptem] === 'function') {
span.addEventListener('click', function () {
window[scriptem].apply(undefined, paramétereim);
}
}