Código de JavaScript - Crear un objeto de los elementos de una lista de elementos

Imágen de perfil
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Crear un objeto de los elementos de una lista de elementosgráfica de visualizaciones


JavaScript

Publicado el 23 de Enero del 2021 por Xve (294 códigos)
680 visualizaciones desde el 23 de Enero del 2021
Dada una lista (<ul> y <li>) de elementos, crear un objeto de Javascript con la estructura dada.

Dada esta lista:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<ul>
    <li>Alarico</li>
    <ul>
        <li>Atanagildo</li>
        <li>Leovigildo</li>
        <li>RecaredoI</li>
        <ul>
            <li>Sisebuto</li>
            <li>RecaredoII</li>
            <li>Suintila</li>
            <ul>
                <li>Chindasvinto</li>
                <li>Recesvinto</li>
                <li>Wamba</li>
                <li>Égica</li>
                <li>Witiza</li>
                <li>Rodrigo</li>
            </ul>
        </ul>
        <li>Sisenando</li>
        <li>Chintila</li>
    </ul>
    <li>Witerico</li>
    <li>Gundemaro</li>
</ul>

Devolver:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
    "Alarico": {
        "Atanagildo": {},
        "Leovigildo": {},
        "RecaredoI": {
            "RecaredoII": {},
            "Sisebuto": {},
            "Suintila": {
                "Chindasvinto": {},
                "Recesvinto": {},
                "Rodrigo": {},
                "Wamba": {},
                "Witiza": {},
                "Égica": {}
            }
        },
        "Sisenando": {},
        "Chintila": {}
    },
    "Witerico": {},
    "Gundemaro": {}
}

Versión 1

Publicado el 23 de Enero del 2021gráfica de visualizaciones de la versión: Versión 1
681 visualizaciones desde el 23 de Enero del 2021
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
 
<body>
 
<ul>
    <li>Alarico</li>
    <ul>
        <li>Atanagildo</li>
        <li>Leovigildo</li>
        <li>RecaredoI</li>
        <ul>
            <li>Sisebuto</li>
            <li>RecaredoII</li>
            <li>Suintila</li>
            <ul>
                <li>Chindasvinto</li>
                <li>Recesvinto</li>
                <li>Wamba</li>
                <li>Égica</li>
                <li>Witiza</li>
                <li>Rodrigo</li>
            </ul>
        </ul>
        <li>Sisenando</li>
        <li>Chintila</li>
    </ul>
    <li>Witerico</li>
    <li>Gundemaro</li>
</ul>
 
</body>
</html>
 
<script>
function createObject(ul) {
    let result={};
    let last="";
    [...ul.children].forEach(el => {
        if (el.tagName=="LI") {
            last=el.textContent;
            result[last]={};
        } else if (el.tagName=="UL") {
            result[last]=createObject(el);
        }
    });
    return result;
}
 
const resultado=createObject(document.querySelector("ul"));
console.log(resultado);
</script>



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6841