Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
javascript loop inside an array that exist inside an array object

I have an array of object that contain info this info are string numbers array

I'm trying to make a function that loop on all this info an print sector name and below the sector name in <li> tag print the licenseTitle each one of them in specific <li>

My problem is when i want to do that my loop print all the licenseTitle in database in the first sector name not like i want.

The output i want is for example

tourism

. tourism 1

. tourism 2

education

.education 1

.education 2

How Can i do that please?

const database = [{
        sectorId: 1,
        sectorName: "tourism",
        sectorIcon: "icon-1.png",
        sectorN: "tourism",
        licenseTitle: ["tourism 1", "tourism 2"],
        licenseNum: ["7960", "7961"]
    },
    {
        sectorId: 2,
        sectorName: "education",
        sectorIcon: "icon-2.png",
        sectorN: "education",
        licenseTitle: ["education 1", "education 2"],
        licenseNum: ["7950", "7951"]
    }
  ]
  
  
 //Print all sectors title with the license title and description
function AllSectors(){
    for(let i = 0; i < database.length; i++){
        document.querySelector('.content-right').innerHTML += `
            <div class="box">
                <div class="box-title">
                    <div class="title">
                        <input type="checkbox" value="${database[i].sectorN}" class="checktitle" name="sectorCheck">
                        ${database[i].sectorName}
                    </div>
                    <div class="arrow">
                         <i class="fas fa-angle-down"></i>
                     </div>
                </div>
                <div class="box-details">
                    <ul class="details-list">`;
                    for(let j = 0; j < database[i].licenseTitle.length; j++){
                        document.querySelector('.details-list').innerHTML += `
                        <li><a href="#">${database[i].licenseTitle[j]}</a></li>
                        `;
                    }
                    `</ul>
                </div>
            </div>
        `;
    }
}

AllSectors();
<div class="content-right"></div>

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Create a separate function for creating the list

const database = [{
    sectorId: 1,
    sectorName: 'tourism',
    sectorIcon: 'icon-1.png',
    sectorN: 'tourism',
    licenseTitle: ['tourism 1', 'tourism 2'],
    licenseNum: ['7960', '7961'],
  },
  {
    sectorId: 2,
    sectorName: 'التعليم',
    sectorIcon: 'icon-2.png',
    sectorN: 'education',
    licenseTitle: ['education 1', 'education 2'],
    licenseNum: ['7950', '7951'],
  },
];

//Print all sectors title with the license title and description
function AllSectors() {
  for (let i = 0; i < database.length; i++) {
    const str = `
          <div class="box">
              <div class="box-title">
                  <div class="title">
                      <input type="checkbox" value="${database[i].sectorN}" class="checktitle" name="sectorCheck">
                      ${database[i].sectorName}
                  </div>
                  <div class="arrow">
                       <i class="fas fa-angle-down"></i>
                   </div>
              </div>
              <div class="box-details">
                  <ul class="details-list">${createList(database[i])}</ul>
              </div>
          </div>`;
    document.querySelector('.content-right').innerHTML += str;
  }
}

AllSectors();

function createList(database) {
  let z = '';
  for (let j = 0; j < database.licenseTitle.length; j++) {
    z += `<li><a href="#">${database.licenseTitle[j]}</a></li>`;
  }
  return z;

}
<div class="content-right"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can nest template literals

document.querySelector('.content-right').innerHTML = database
  .map(db => `
  <div class="box">
    <div class="box-title">
      <div class="title">
        <label>
          <input type="checkbox" value="${db.sectorN}" class="checktitle" name="sectorCheck">
          ${db.sectorN}
        </label>
      </div>
      <div class="arrow">
        <i class="fas fa-angle-down"></i>
      </div>
    </div>
    <div class="box-details">
      <ul class="details-list">${db.licenseTitle
        .map(lT=>`<li><a href="#">${lT}</a></li>`).join("")}
      </ul>
    </div>
  </div>`).join("");
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"  />

<div class="content-right"></div>
<script>
  const database = [{
      sectorId: 1,
      sectorName: 'tourism',
      sectorIcon: 'icon-1.png',
      sectorN: 'tourism',
      licenseTitle: ['tourism 1', 'tourism 2'],
      licenseNum: ['7960', '7961'],
    },
    {
      sectorId: 2,
      sectorName: 'التعليم',
      sectorIcon: 'icon-2.png',
      sectorN: 'education',
      licenseTitle: ['education 1', 'education 2'],
      licenseNum: ['7950', '7951'],
    },
  ];
</script>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda