Estoy tratando de agregar un método personalizado a la clase String en JavaScript llamado toAlternatingCase , convertirá los caracteres en minúsculas en mayúsculas y viceversa en la cadena a la que se llama, estoy tratando de hacerlo como el integrado toUpperCase/ métodos toLowerCase que no toman ningún argumento. este es un kata (desafío) en codewars .
Esto se puede hacer utilizando el método prototipo para extender la clase String. Probablemente esta no sea la forma más eficiente de hacerlo, pero se puede lograr con algo como esto:
String.prototype.toAlternatingCase = function() { var ns = ""; for(var i = 0; i < this.length; i++) ns += (this.slice(i, i+1) == this.slice(i, i+1).toUpperCase()) ? this.slice(i, i+1).toLowerCase() : this.slice(i, i+1).toUpperCase(); return ns; } "String.prototype.toAlternatingCase".toAlternatingCase(); // Should return 'sTRING.PROTOTYPE.TOaLTERNATINGcASE'Esto simplemente recorre la cadena e invierte el caso de cada carácter, luego devuelve ese nuevo resultado (sin modificar la cadena original).
String.prototype.toAlternatingCase = function () { return this.split("").map(l => l === l.toUpperCase() ? l.toLowerCase() : l.toUpperCase()).join(""); }