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

158
Vistas
¿Cómo hacer coincidir el carácter Nth en una cadena en javascript?

Quiero encontrar una palabra por la posición de sus caracteres:

const wordlist = ['xenon', 'rewax', 'roger', 'bob', 'xylophone'] Y, para encontrar xilófono, tendré:

const charSlotPairs = [{char: "x", slot: 0}, {char: "y", slot: 1}];

así que estoy creando dinámicamente la expresión regular (^.{0}[x])(^.{1}[y]) pero creo que esta expresión regular es incorrecta... ¿Cómo encuentro coincidencias en función de la posición de un carácter? en una cadena?

 function (charSlotPairs){ let regexStr = "" charSlotPairs.forEach( pair => { regexStr += `(^.{${pair.slot}}[${pair.char}])` }) const regex = new RegExp(`${regexStr}\\w`, 'g') return this.filter( word => !word.match(regex) ) }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Esta es la forma en que lo resolvería en lugar de usar expresiones regulares:

 function (charSlotPairs){ return !!charSlotPairs.find(pair => a.every( word => word.charAt(pair.slot) == pair.char) ) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Su consulta se puede resolver solo con el uso de bucle.

 const wordlist = ['xenon', 'rewax', 'roger', 'bob', 'xylophone']; const charSlotPairs = [{char: "x", slot: 0}, {char: "y", slot: 1}]; let stringFinder = (StrArr, KeyArr) => { var match = false; // Indicator Variable // For Iterating a String Array for (var i of StrArr) { // For Iterating the Object Array for each Key for (var x of KeyArr) { /* |If Conditon fails, match will set to false and Loop will Break |Otherwise Loop will continue */ if (i.charAt(x.slot) != x.char) { match = false; break; } else { match = true; } } /* |If the Inner Loop is completed and match is true => Success |If the Inner Loop is completed and match is false => Failed */ if (match) { return i; } } return false; } console.log(stringFinder(wordlist, charSlotPairs));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Terminé filtrando la lista de palabras y luego usando .every() para asegurarme de que todas pasaran el filtro.

 Array.prototype.findWordsWithLettersInSlots = function (letterSlotPairs){ if( letterSlotPairs.length === 0 ) return this if( Object.keys(letterSlotPairs).length === 0 ) return this return this.filter( word => { return letterSlotPairs.every( (pair) => { return word.charAt(pair.slot) === pair.letter }) }) }
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