What, no love for Object.entries()
? This seems to be exactly what you're looking for...
function getDataset(e) {
return new Map(Object.entries(e.dataset));
}
function getDatasetValuesArray(e) {
return Object.entries(e.dataset).map(([, value]) => value);
}
for ( let e of document.querySelectorAll('p') ) {
let datasetValuesArray = getDatasetValuesArray(e);
e.textContent = datasetValuesArray.join(", ");
}
<p data-one="foo">...</p>
<p data-one="bar" data-two="baz">...</p>