Ejemplos funciones cadenas

function tipoOracion(cadena) {
var primera = cadena.charAt(0);
var resto = cadena.slice(1);
return primera.toUpperCase() + resto.toLowerCase();
}

function tipoTitulo(cadena) {
var palabras = cadena.split(" ");
for (var i = 0; i < palabras.length; i++) {
palabras[i] = tipoOracion(palabras[i]);
}
return palabras.join(" ");
}

function tipoTitulo2(cadena) {
var palabras = cadena.split(" ");
var res = "";
for (var i = 0; i < palabras.length; i++) {
res += tipoOracion(palabras[i]) + " ";
}
return res.trim();
}
function tipoTitulo3(cadena) {
var res = cadena.charAt(0).toUpperCase();
for (var i = 1; i < cadena.length; i++) {
if (cadena.charAt(i - 1) === " ") {
res += cadena.charAt(i).toUpperCase();
} else {
res += cadena.charAt(i).toLowerCase();

}
}
return res;
}

function tipoHipster(cadena){
var res="";
for(var i=0;i<cadena.length;i++){
var letra=cadena.charAt(i);
if (esVocal(letra)){
res+=letra.toUpperCase();
}
else{
res+=letra.toLowerCase();
}
}
return res;
}

function tipoHipster2(cadena){
var letras=cadena.split("");
for(var i=0;i<letras.length;i++){
if (esVocal(letras[i])){
letras[i]=letras[i].toUpperCase();
}
else{
letras[i]=letras[i].toLowerCase();
}
}
return letras.join('');
}

function esVocal(letra){
var vocales="aeiouáéíóúàèìòùü";
return vocales.indexOf(letra.toLowerCase())!==-1;
}