JS array find y findIndex

Enlaces:

https://www.w3schools.com/jsref/jsref_find.asp
https://www.w3schools.com/jsref/jsref_findindex.asp
https://appdividend.com/2018/12/17/javascript-array-find-example-array-prototype-find-tutorial/

   let num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
 
  console.log(num.find(valor => valor > 5)); //Devuelve 6
    console.log(num.findIndex(valor => valor > 5)); //Devuelve 5
    let cad = "hola que tal";
    console.log(cad.split(" ").find(valor => valor.length <= 3)); //Devuelve que
    console.log(cad.split(" ").findIndex(valor => valor.length <= 3)); //Devuelve 1
    let libros = [{ titulo: "Quijote", paginas: 400 },
    { titulo: "El buscón", paginas: 300 },
    { titulo: "Orestiada", paginas: 200 }]

    console.log(libros.find(valor=>valor.paginas<250));// Devuelve {titulo: "Orestiada", paginas: 200}
    console.log(libros.findIndex(valor=>valor.paginas<250));// Devuelve 2

    //Ejercicio: crear una función que pasándole una cadena nos devuelva la primera palabra que tenga una longitud mayor de 8
    //Ejemplo: primeraLarga("hola que tal")->undefined primeraLarga("en un lugar de la mancha arquetípica y lustrosa")->arquetípica

Ejercicio API

Vamos a consultar libros y artículos del nytimes. Aquí hay la lista de las apis:

https://developer.nytimes.com/apis

Yo me he creado una apikey: SFq0lnJwGzV4X8XyqV2kQvA3LgKAp3kN

Pero os podéis crear la vuestra.

Me gustaría que, desde el postman, accediéramos a la lista de los libros más vendidos y a los artículos de los tres últimos meses.

También podéis crear vuestra propia apikey y acceder, por ejemplo, a películas.

¡A por ello!

Añadir actor a película


$server = "localhost";
$user = "root";
$password = "";
$db = "sakila";
try {
    $conn = new PDO("mysql:host=$server;dbname=$db;charset=UTF8", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //Los datos que tengo que insertar
  
    $nombre = "VIVIEN";
    $apellidos = "BERGEN";
    $pelicula="ACADEMY DINOSAUR";
    
    $sql="SELECT * FROM actor where first_name=:first_name and last_name=:last_name";
    $parametros=[
        'first_name'=>$nombre,
        'last_name'=>$apellidos
    ];
    
    $st=$conn->prepare($sql);
    $st->execute($parametros);
    $actor=$st->fetch();
    $actor_id=$actor['actor_id'];
    echo $actor_id;
    
     $sql="SELECT * FROM film where title=:title";
    $parametros=[
        'title'=>$pelicula
    ];
    
    $st=$conn->prepare($sql);
    $st->execute($parametros);
    $film=$st->fetch();
    $film_id=$film['film_id'];
    echo $film_id;
    
    $sql="insert into film_actor(film_id,actor_id) values (:film_id,:actor_id)";
     $parametros=[
        'film_id'=>$film_id,
        'actor_id'=>$actor_id,
    ];
    $st=$conn->prepare($sql);
    $st->execute($parametros);
} catch (Exception $e) {
    echo "Connection failed: " . $e->getMessage();
}

Ejercicios vistas

Crear una vista que nos muestre el pais, la ciudad, la dirección y el nombre de los clientes. La podemos llamar clientes_direccion

Con esa vista creada será muy fácil mostrar los clientes de Argentina o Italia

Crear una vista que nos relacione la película con sus pagos. Que nos muestre el id de la película, el title, y todos los datos de payment.

Con esa vista sería muy fácil ver el total de pagos por película.

Ejemplo Alias


select count(title) total
from film f join film_category fc on f.film_id=fc.film_id
join category c on fc.category_id = c.category_id
where name='Action'

Tablero de ajedrez


$tamany = 8;
echo "<table border=1>";
for ($i = 0; $i < $tamany; $i++) {
    echo "<tr>";
    for ($j = 0; $j < $tamany; $j++) {
        if (($i + $j) % 2 == 0) {
            echo "<td style='background-color:black;width:20px;height:20px'></td>";
        } else {
            echo "<td style='width:20px;height:20px'></td>";
        }
    }
    echo "</tr>";
}
echo "</table>";