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

Cesta compra 2.0

 <input type="text" id="producto" >
 <input type="button" id="compra" value="Comprar">
 <input type="button" id="ordenar" value="Ordenar">
 <input type="button" id="ordenar2" value="Ordenar desc">
 <div id="cesta"></div>
var cesta = [];

document.getElementById("compra").addEventListener("click", comprar);
document.getElementById("ordenar").addEventListener("click", function () {
ordenar(1);
});
document.getElementById("ordenar2").addEventListener("click", function () {
ordenar(2);
});
document.getElementById("producto").addEventListener("keypress", tecla);

function comprar() {
var producto = document.getElementById('producto').value;
if (producto.trim() !== "" && cesta.indexOf(producto) === -1) {
cesta.push(producto);
document.getElementById('producto').value = "";
mostrar();
} else {
alert("Producto incorrecto o repetido");
}
}
function tecla(event) {

if (event.keyCode === 13 || event.key === "+") {
comprar();
event.preventDefault();
}
if (event.key >= "0" && event.key <= "9") {
event.preventDefault();
}
}
function ordenar(tipo) {
cesta.sort();
if (tipo === 2) {
cesta.reverse();
}
mostrar();
}

function mostrar() {
var resultado = document.getElementById('cesta');
resultado.innerHTML = "";
for (var i = 0; i < cesta.length; i++) {
var parrafo = document.createElement("p");
parrafo.innerHTML = i + ".- " + cesta[i];
var boton = document.createElement("button");
boton.innerHTML = "X";
boton.id=i;
boton.addEventListener("click", function () {
borrar(this.id);
})
parrafo.appendChild(boton);
resultado.appendChild(parrafo);

}
}

function borrar(i) {
cesta.splice(i, 1);
mostrar();
}

Ejercicios fechas

 Mes:<input type="text" id="mes">
 Año:<input type="text" id="anyo">
 Festivos:<input type="text" id="festivos">
 <input type="button" onclick="calcular()" value="Calcular">
 <input type="button" onclick="total()" value="Total">
function calcular() {
//Obtener los valores de las cajas de texto
var mes = document.getElementById('mes').value;
var anyo = document.getElementById('anyo').value;

//Poner el resultado en el input festivos
document.getElementById('festivos').value = festivos(mes, anyo);

}

//Nos devuelve los años con más festivos
function maximoAnual(anyoDesde, anyoHasta) {
var anyo = [];
var maximo = 0;
for (var i = anyoDesde; i <= anyoHasta; i++) {
var t = total(i);
if (t === maximo) {
anyo.push(i);
}
if (t > maximo) {
anyo = [i];
maximo = t;
}
}
return [anyo, maximo];
}

//nos devuelve los meses con más festivos de un año
function mesesFestivos(anyo) {
var mes = [];
var maximo = 0;
for (var i = 1; i <= 12; i++) {
var t = festivos(i,anyo);
if (t === maximo) {
mes.push(i);
}
if (t > maximo) {
mes = [i];
maximo = t;
}
}
return [mes, maximo];
}
function total(anyo) {
var total = 0;
for (var i = 1; i <= 12; i++) {
total += festivos(i, anyo);
}
//Poner el resultado en el input festivos
return total;
}
function festivos(mes, anyo) {
var cont = 0;
var diasMes = daysInMonth(mes, anyo);
//Recorro el mes para buscar sábados y domingos
for (var i = 1; i <= diasMes; i++) {
var fecha = new Date(anyo, mes - 1, i);
//Si es sábado o domingo sumar uno al contador
if (fecha.getDay() === 6 || fecha.getDay() === 0) {
cont++;
}
}
return cont;
}

function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}


Cesta de la compra

  <input type="text" id="producto" onkeyup="tecla(event)">
 <input type="button" onclick="comprar()" id="compra" value="Comprar">
 <input type="button" onclick="ordenar()" id="ordenar" value="Ordenar">
 <div id="cesta"></div>
var cesta = [];
function comprar() {
 var producto = document.getElementById('producto').value;
 if (producto.trim() !== "" && cesta.indexOf(producto) === -1) {
 cesta.push(producto);
 mostrar();
 } else {
 alert("Producto incorrecto o repetido");
 }
}
function tecla(event){
 if (event.keyCode===13){
 comprar();
 document.getElementById('producto').value="";
 }
}
function ordenar() {
 cesta.sort();
 mostrar();
}
function mostrar() {
 var resultado = document.getElementById('cesta');
 resultado.innerHTML = "";
 for (var i = 0; i < cesta.length; i++) {
 resultado.innerHTML += "<p>" + i + ".- "
 + cesta[i] +
 " <input type='button' value='X' onclick='borrar(" + i + ")'>" + "</p>";
 }
}
function borrar(i) {
 cesta.splice(i, 1);
 mostrar();
}

Cesta de la compra

 <input type="text" id="producto">
 <input type="button" onclick="comprar()" id="compra" value="Comprar">
 <div id="cesta"></div>
 var cesta = [];
function comprar() {
 var producto = document.getElementById('producto').value;
 if (producto.trim() !== "" && cesta.indexOf(producto) === -1) {
 cesta.push(producto);
 mostrar(cesta);
 } else {
 alert("Producto incorrecto o repetido");
 }
}
function mostrar(cesta) {
 var resultado = document.getElementById('cesta');
 resultado.innerHTML = "";
 for (var i = 0; i < cesta.length; i++) {
 resultado.innerHTML += "<p>" + i + ".- " + cesta[i] + "</p>";
 }
}

JavaScript fechas y otros

function sumar() {
var num1 = document.getElementById('num1').value;
var num2 = document.getElementById('num2').value;
var num3 = document.getElementById('num3');

num3.value = Number(num1) + Number(num2);
num3.value = suma(num1, num2);
}

var fecha = new Date();
var resultado = document.getElementById('resultado');
if (fecha.getDay() === 5) {
resultado.innerHTML = "¡por fin es viernes!!!!";
} else {
resultado.innerHTML = "Hoy NO es viernes :(";

}

var notas = [5, 4, 8, 9, 10];

//¿Cómo obtengo la suma?
var suma=0;
for (var i = 0; i < notas.length; i++) {
suma+=notas[i];
}
console.log(suma/notas.length);

function suma(num1, num2) {
return Number(num1) + Number(num2);
}

Ejemplo muy simple angular

core.js

var actores = angular.module('actores', []);

function mainController($scope, $http) {
	$scope.formData = {};

	// when landing on the page, get all todos and show them
	$http.get('http://localhost/api.php/actor/')
		.success(function(data) {
			$scope.actores = data;
		})
		.error(function(data) {
			console.log('Error: ' + data);
		});


}

index.html

<!doctype html><!doctype html>
<!-- ASSIGN OUR ANGULAR MODULE --><html ng-app="actores"><head> <!-- META --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"><!-- Optimize mobile viewport -->
 <title>Angular actor App</title>
 <!-- SCROLLS --> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<!-- load bootstrap -->
 <!-- SPELLS -->
 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script><!-- load angular --> <script src="core.js"></script>
</head>
<!-- SET THE CONTROLLER AND GET ALL actores WITH INITIALIZE FUNCTION --><body ng-controller="mainController"> 
<div class="container">
 <!-- HEADER AND actor COUNT --> 
<div class="jumbotron text-center"> 
<h1>Actores <span class="label label-info">{{ actores.length }}</span></h1> </div>
 <!-- actor LIST --> 
<div id="actor-list" class="row">
 <div class="col-sm-4 col-sm-offset-4">
 <!-- LOOP OVER THE actores IN $scope.actores --> 
<div class="checkbox" ng-repeat="actor in actores"> 
<label> {{ actor.first_name }} {{ actor.last_name }} </label> </div>
 </div> 
</div>
 </div>
</body></html>

Consumir servicios rest con angular

Algunas páginas muy explicativas:

https://carlosazaustre.es/blog/tutorial-ejemplo-de-aplicacion-web-con-angular-js-y-api-rest-con-node/

https://www.cursoangularjs.es/

https://www.toptal.com/angular-js/un-tutorial-paso-a-paso-para-tu-primera-aplicaci%C3%B3n-angularjs/es