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

88
Vistas
Matriz de filtros Javascript/mecanografiado

Tengo una matriz que debe filtrarse con una condición específica

 **Input** let arr=[ "abcde-backup", "abcde", "fghij-backup", "fghij", "klmnop-backup", "qrstuv" ] I am trying to achieve output like this **output** [ "abcde-backup", "fghij-backup", "klmnop-backup", "qrstuv" ]
  • Si algún valor tiene -backup tiene sufijo, entonces debería tomar eso y debería evitar el que no tiene respaldo. Aquí fghij-backup tiene valor con la copia de seguridad, por lo que esa es la prioridad.

  • Si el valor no tiene copia de seguridad tiene sufijo, entonces debería tener prioridad, eg:qrstuv

Me sorprende el segundo punto. He probado con este código

 function getLatestJobId(){ let finalArr=[]; arr.forEach(val=>{ if(val.indexOf('-backup') > -1){ finalArr.push(val); } }) return finalArr; }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Según la explicación, el requisito es filtrar las palabras con -backup como sufijo.

En caso de que las palabras no tengan el sufijo -backup , permita esas palabras solo cuando no haya una palabra de respaldo alternativa presente. Por ejemplo: para abcde , dado que ya tenemos abcde-backup , no lo permita en el resultado. Pero, para qrstuv , no hay una alternativa de copia de seguridad ( qrstuv-backup ), así que permítala.

Entonces, el código para esto sería el siguiente:

 let arr=[ "abcde-backup", "abcde", "fghij-backup", "fghij", "klmnop-backup", "qrstuv" ] function getLatestJobId(){ return arr.filter(val => val.endsWith('-backup') || !arr.includes(`${val}-backup`)) } console.log(getLatestJobId())

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tu puedes hacer:

 const arr = [ 'abcde-backup', 'abcde', 'fghij-backup', 'fghij', 'klmnop-backup', 'qrstuv' ] const result = Object.values(arr.reduce((a, c) => { const [w] = c.split('-') a[w] = a[w]?.endsWith('-backup') ? a[w] : c return a }, {})) console.log(result)

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