¿Cómo puedo crear una matriz u objeto a partir de una lista ordenada, con el número como índice/clave y el elemento de la lista como el valor correspondiente?
Lista de ejemplo:
<ol> <li>First list item</li> <li>Second list item</li> <li>Third list item</li> </ol>Debería resultar en:
{"1" => "First list item", "2" => "Second list item", "3" => "Third list item"} Intenté usar Array.from() con algunas variaciones pero eso no funcionó
Puede usar querySelectorAll para obtener los <li> e iterar sobre ellos para extraer su innerText en una matriz:
const items = [...document.querySelectorAll('li')].map(x => x.innerText); console.log(items); <ol> <li>First list item</li> <li>Second list item</li> <li>Third list item</li> </ol> La matriz resultante tendrá item[0] === 'First list item' , etc.
Primero, escriba un selector de consulta para obtener la etiqueta <ol> y luego lea sus elementos secundarios:
let ol = document.querySelector('ol') let lis = ol.children Luego, defina un objeto y agregue todos los textos <li> en él:
let obj = {} for (let i = 0; i < lis.length; i++) { obj[i.toString()] = lis[i].innerText }Eso debería crear el objeto que estás buscando.
Una de las formas de hacerlo:
let bob = Array.from( document.querySelector('ol').children, li => li.textContent ) console.log( bob) <ol> <li>First list item</li> <li>Second list item</li> <li>Third list item</li> </ol>