まあ簡単なことなんですが、最近良く使うので。
lodash とか使って書いてたけど(記述量はほぼ変わらない)、面倒なのでモジュール化して使ってる。
ES2015
const getNamedElements = (elms, name) => {
const obj = {};
for(let i = 0; elms.length > i; i++) {
const el = elms[i];
obj[el.dataset[name]] = el;
}
return obj;
};
const elms = getNamedElements(document.getElementsByTagName('div'), 'name');
console.log(elms); // {hoge: div, fuga: div, piyo: div}
html
<div data-name="hoge"></div>
<div data-name="fuga"></div>
<div data-name="piyo"></div>