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

178
Vistas
Can I add forEach method to String prototype from Array prototype?

As we know there is a .forEach() method for arrays in JavaScript. But Strings don't have that method built in.

So, is there any issue regarding the following code snippet: String.prototype.forEach = Array.prototype.forEach ?

This setting helps me to use .forEach for Strings.

let myName = "Avetik";   

String.prototype.forEach = Array.prototype.forEach;

myName.forEach(char => {

console.log(char);
})

The above code works fine and outputs all chars of my name.

You already guessed that I am a newbie in JS.

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

0

You can, but:

  • it's confusing (other developers working on the same codebase could well be very confused at seing such a method called on a string)
  • can lead to fragile code (if you define String.prototype.forEach, it may interfere with other code that uses methods on the String prototype)
  • doesn't help much: you can do [...str].forEach very easily, and you can also do for (const char of str) { very easily

// 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);
});

  • can damage the future syntax of the language if enough script-writers define such a thing (see what happened with Array.prototype.contains and Array.prototype.flatten)

So, it's doable, but it's probably not a good idea.

about 4 years ago · Juan Pablo Isaza Denunciar

0

You can add your own wrapper...

I can hardly resist such bad ideas!
My advice, do it, and wait for the day or such practices will turn against you dearly. Then you will have the measure of such an error, which I hope will definitely dissuade you from playing with language syntax, and with any luck you might be able to become a computer language guru.

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))

but it would be better to use a less ambiguous name

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() is inherently a function for arrays (groups of multiple things). A string is just 1 thing, there's no way to do something for "each" when there's only 1.

You can use .split() on a string to turn it into an array of every character. Then do whatever array operations you want on the result of that. And then .join() on the array to turn it back into a string if you need to.

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