Tengo la siguiente lista.
<div class="taco" data-id="2"></div> <div class="taco" data-id="3"></div> <div class="taco" data-id="4"></div> <div class="taco" data-id="23"></div> <div class="taco" data-id="55"></div>y uso el siguiente código para obtenerlos todos en una lista.
let tacos = document.querySelectorAll(".taco");Luego uso el siguiente código para obtener todos los conjuntos de datos
let tacosArray = []; for (let i = 0; i < tacos.length; index++) { tacosArray.push(tacos[i].dataset.id); }Ahora tengo una variedad de conjuntos de datos, pero tiene que haber una mejor manera.
Una posibilidad es Array.from con su función de mapeador.
const tacos = Array.from( document.querySelectorAll('.taco'), div => div.dataset.id ); console.log(tacos); <div class="taco" data-id="2"></div> <div class="taco" data-id="3"></div> <div class="taco" data-id="4"></div> <div class="taco" data-id="23"></div> <div class="taco" data-id="55"></div>El operador de propagación ... y .map()
const ids = [...document.querySelectorAll('.taco')].map(id => id.dataset.id); console.log(JSON.stringify(ids)); <div class="taco" data-id="2"></div> <div class="taco" data-id="3"></div> <div class="taco" data-id="4"></div> <div class="taco" data-id="23"></div> <div class="taco" data-id="55"></div>