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

185
Vistas
¿Puedo agregar el método forEach al prototipo de cadena desde el prototipo de matriz?

Como sabemos, hay un método .forEach() para matrices en JavaScript. Pero Strings no tiene ese método integrado.

Entonces, ¿hay algún problema con respecto al siguiente fragmento de código: String.prototype.forEach = Array.prototype.forEach ?

Esta configuración me ayuda a usar .forEach para cadenas.

 let myName = "Avetik"; String.prototype.forEach = Array.prototype.forEach; myName.forEach(char => { console.log(char); })

El código anterior funciona bien y genera todos los caracteres de mi nombre.

Ya adivinaste que soy un novato en JS.

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

0

Puedes , pero:

  • es confuso (otros desarrolladores que trabajan en el mismo código base podrían estar muy confundidos al ver un método de este tipo llamado en una cadena)
  • puede conducir a un código frágil (si define String.prototype.forEach , puede interferir con otro código que usa métodos en el prototipo de String)
  • no ayuda mucho: puedes hacer [...str].forEach muy fácilmente, y también puedes hacer for (const char of str) { muy fácilmente

 // Say we want to iterate over this string: const str = 'str'; // without adding a method to the prototype. Easy: // One method: for (const char of str) { console.log(char); } // Another method: [...str].forEach((char) => { console.log(char); });

  • puededañar la sintaxis futura del lenguaje si suficientes guionistas definen tal cosa (vea lo que sucedió con Array.prototype.contains y Array.prototype.flatten )

Entonces, es factible, pero probablemente no sea una buena idea.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes añadir tu propio envoltorio...

¡Apenas puedo resistir esas malas ideas!
Mi consejo, hazlo y espera el día o tales prácticas se volverán en tu contra. Entonces tendrá la medida de tal error, que espero definitivamente lo disuadirá de jugar con la sintaxis del lenguaje y, con un poco de suerte, podrá convertirse en un gurú del lenguaje informático.

 if(typeof String.prototype.forEach !== "function") { String.prototype.forEach = Array.from(this).forEach }; // sample usage : let abc = 'abc' abc.forEach((letter, index)=> console.log(letter,index))

pero sería mejor usar un nombre menos ambiguo

 if(typeof String.prototype.forEachLetter !== "function") { String.prototype.forEachLetter = Array.from(this).forEach }; // sample usage : let abc = 'abc' abc.forEachLetter((letter, index)=> console.log(letter,index))

about 4 years ago · Juan Pablo Isaza Denunciar

0

.forEach() es inherentemente una función para matrices (grupos de varias cosas). Una cadena es solo 1 cosa, no hay forma de hacer algo para "cada uno" cuando solo hay 1.

Puede usar .split() en una cadena para convertirla en una matriz de cada carácter. Luego haga las operaciones de matriz que desee con el resultado de eso. Y luego .join() en la matriz para volver a convertirla en una cadena si es necesario.

 var myString = "beans"; var myArray = myString.split(); // this will be an array of 5 strings: ['b', 'e', 'a', 'n', 's']
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