No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Compra acceso a todo Platzi por 1 a帽o

Antes: $249

Currency
$209/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscr铆bete

Termina en:

16D
3H
21M
32S
Curso Pr谩ctico de JavaScript

Curso Pr谩ctico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Arrays y objetos

7/29
Recursos

Aportes 189

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Para recordar como se escribe length
lenGTH => Gallina Tiene Huevos

Yo logr茅 imprimir todos los arrays con Object.entries:
.entries -->

const object = {
    name: "goku",
    age: 110,
    poder: "Kamehame haaaaaaaaaa",
    debilidad: "Jeringas",
}

console.log(Object.entries(object));

////////////////////////////// resultado:

[
  [ 'name', 'goku' ],
  [ 'age', 110 ],
  [ 'poder', 'Kamehame haaaaaaaaaa' ],
  [ 'debilidad', 'Jeringas' ]
]




Para ti JuanDC
Par茅ntesis ( )
Corchetes [ ]
Llaves { }
馃槑

Yo hice en el 煤ltimo ejercicio esto :3, sent铆 bonito que funcionara jaja

var amby = {
  nombre: "Achoque",
  localidad: "Michoac谩n",
  color: ["Verde Oscuro", "Caf茅", "Moteado"]
}

function imprimirAmbys(arr){
  const achoques = Object.values(amby);
  achoques.forEach(function(element){
    console.log(element);
  })
}

Hola profe, yo us茅 este metodo que lo vi en la clase de javascript basico con el profesor Diego de Granda, no se que opina creo que es bastante corto.
var pc = {
marca: 鈥榣enovo鈥,
modelo: 鈥榣aptop鈥,
a帽o: 2016,
};
function objeto(object) {
for (var item in object) {
console.log(object[item]);
}
}
objeto(pc);

Dejo mi aporte para la impresi贸n de las propiedades de un objeto haciendo uso de Object.keys

function printAllObject(object) {
    if (object) {
        let keys = Object.keys(object);
        for (let key of keys) {
            console.log(`${key}: ${object[key]}`);
        }
    }
}

Al usar la funcion

printAllObject({ name: 'Ernesto Perez', age: '2', nickName: 'frailejon'})

Retorna
name: Ernesto Perez
age: 2
nickName: frailejon

Regla nemot茅cnica para recorrer Arrays usando su longitud:

i < arr.length --> para escribir siempre bien LENGTH,
G --> gallina
T鈥> tiene
H --> huevos

馃槈 no te lo olvidas m谩s 鉂わ笍

Listas Y Objetos

1锔.Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?

  • Es una lista de elementos, PUEDEN SER DE CUALQUIER TIPO.

驴Qu茅 es un objeto?

  • Es una lista de elementos PERO cada elemento tiene un nombre clave.

驴Cu谩ndo es mejor usar objetos o arrays?

  • Arrays cuando lo que haremos en un elemento es lo mismo que en todos los dem谩s (la regla se puede incumplir). Mientras que un objeto cuando los nombres de cada elemento son importantes para nuestro algoritmo.

驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

  • S铆. Los arrays pueden guardar objetos. Y los objetos pueden guardar arrays entre sus propiedades.

2锔.Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimirPrimerElementoArray(arr) {
    console.log(arr[1])
}

3锔.Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function imprimirElementoPorElemento(arr) {
    for (let i = 0; i < arr.length; i++) {
        console.log(arr[i])
    }
}

4锔.Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function imprimirElementoPorElementoObjeto(obj) {
    const arr = Object.values(obj);
    for (let i = 0; i < arr.length; i++) {
        console.log(arr[i])
    }
}

Dime que tu profesor habla ingl茅s sin decirme que habla ingl茅s:
usa chistes anglosajones en espa帽ol; 鈥淒ijo nadie nunca/Said no one ever鈥 馃ぃ馃ぃ

Puedes utilizar el ciclo For鈥n para recorrer un objeto sin necesidad de convertirlo en array.

Oh que chevere como resolvio ese ultimo ejercicio, yo la verdad no pude hacerlo, pero que manera mas intuitiva y facil de resolverlo el profe. Like

Les comparto mi respuestas:
Para imprimir un array use esto

let array= ["Pedro","jose","Armando","Sebastian"];

function callAllElements(array){
    for(let result of array){
        console.log(result);
    }
}
callAllElements(array)

Para imprimir el objeto simplemente lo convert铆 en un array y luego hice exactamente lo mismo

let object = {
    name: "Pedro",
    age: "Picapiedra",
    county: "CO"
}
function printElements(){
    for(let result of Object.values(object)){
        console.log(result);
    }
}
printElements(object)

Espero les ayude

// Con objetos 
const tipoSuscrip = [
    {suscription:"Free" , msg:"Solo puedes tomar los cursos gratis" },
    {suscription:"Basic" , msg:"Puedes tomar casi todos los cursos de Platzi durante un mes"},
    {suscription:"Expert" , msg:"Puedes tomar casi todos los cursos de Platzi durante un a帽o"},
    {suscription:"ExpertPlus" , msg:"T煤 y alguien m谩s pueden tomar TODOS los cursos de Platzi durante un a帽o"}
];

tipoSuscrip.forEach(function(elemento){
    console.log(Object.values(elemento));
});

Lo realice con el for/in

var fruta = {	nombre: "Perra", 
				nombreCientifico: "Pyrus communis", 
				Reino: "Plantae",
				Subreino: "Tracheobionta",
				Divisi贸n: "Magnoliophyta",
				Clase: "Magnoliopsida",
				Subclase: "Rosidae",
				Orden: "Rosales",
				Familia: "Rosaceae",
				Subfamilia: "Amygdaloideae2鈥",
				Tribu: "Maleae",
				G茅nero: "Pyrus",
				Especie: "P. communis",
			};
			
			
function mostrarObjeto(obj) {
	for ( let valor in obj ) {
		console.log( valor + ": " + fruta[valor] );
	}
}

Resultado:
nombre: Perra
nombreCientifico: Pyrus communis
Reino: Plantae
Subreino: Tracheobionta
Divisi贸n: Magnoliophyta
Clase: Magnoliopsida
Subclase: Rosidae
Orden: Rosales
Familia: Rosaceae
Subfamilia: Amygdaloideae2鈥
Tribu: Maleae
G茅nero: Pyrus
Especie: P. communis

Para complementar encontr茅 esto en la pag de w3schools:

When to Use Arrays. When to use Objects:

  • JavaScript does not support associative arrays.

  • You should use objects when you want the element names to be strings (text).

  • You should use arrays when you want the element names to be numbers.

let datos = {
nombre: 鈥淐arlos鈥,
apellido: 鈥淟opez鈥,
edad: 22
}

function retornaObjeto (datos){

for (let [clave,valor] of Object.entries(datos)){
    console.log (clave +" "+ valor)
}

}

retornaObjeto (datos)

Mi aporte 馃槂

let arregloPrueba = ["perros", "gatos", "ratones", "jirafas", "rinos", "leones", "tortugas"];

function print(arreglo) {
  for (let i = 0; i < arreglo.length; i++){  
    console.log(arreglo[i]);
  }
}

print(arregloPrueba);

length, width y height causando problemas desde el principio de los tiempos jajaja 馃ぃ

Hola, hice la misma investigacion, para averiguar como imprimier los valores de las propiedades de un objeto. En mi caso (me encuentro en el a帽o 2023, Abril, y Platzi recien saco su curso de AI) use ChatGPT, y le pregunte por un metodo que me permitiera obtener los nombres de las propiedades de un objeto.
aqui el resultado de mi codigo:

para que no esten abriendo la consola de google y cerrando si quieren interpretar codigo practicarlo

yo utilizo esta herramienta https://runjs.app/

Claro es como pasa con los vectores de Java, cuando creamos arreglos dimensionales o bidimensionales. empezamos por la matriz indic谩ndoles lo que deben hacer.

Esta es la opci贸n que yo he hecho en la actividad 3 de este bloque, es un poco diferente pero funciona:

let array = ['Ana', 'Juan', 'Elena' ,'Rosa'];

function mostrarPrimerElemento(){
    document.write(array[0])
}
mostrarPrimerElemento();

() parentesis
[] corchetes
{} llaves
馃槃

let names = ["Juan", "Jose", "Maria", "Max"];

function imprimirElementosArray(arr) {
    for (let i = 0; i < arr.length; i++ ) {
        console.log(arr[i]);
    }
}

imprimirElementosArray(names);

ya entend铆 el objeto

Ojo con las may煤sculas y min煤sculas, muy importantes, aun no aprendo xd

Signos de agrupaci贸n

- ( ) 鈫 par茅ntesis o par茅ntesis ordinarios.
- [ ] 鈫 corchetes o par茅ntesis angulares o par茅ntesis rectangulares.
- { } 鈫 llaves.
- | | 鈫 v铆nculos o barras.

A mi me gusta mucho este m茅todo para obtener las propiedades del objeto:

<code> 

const objetoDePrueba = {
    nombre: 'Manolito',
    apellido: 'Gambito',
    aficiones: ['Piano', 'Reggae', 'Estudiar JS', 'F煤tbol', 'Leer'],
    verAficiones() {
        console.log(this.aficiones);
    },
    ciudad: 'Sevilla',
    trabajo: 'Codiguitos SL',
    parado: false,
    casado: false
}

function obtenerPropiedades(objetoComoParametro) {
    for (let valores in objetoComoParametro) {
        console.log(objetoComoParametro[valores]);
    }
}

obtenerPropiedadesObjeto(objetoDePrueba);

let obj = {
nombre: 鈥淕abriel鈥,
apellido: 鈥淧uig鈥,
edad: 47
}

function prtArr(valor) {
const array = Object.values(valor);
for(let i= 0; i < array.length; i++ ){
console.log(array[i])
}
}

prtArr(obj);

Como convertir Objetos en Arrays

7/27 Arrays y objetos

Los arrays y objetos son la base fundamental con la que se pueden construir otros tipos de listas.

Un array es una lista de elementos sin nombre clave,

mientras que un objeto es una lista de elementos en la que cada elemento tiene un nombre clave.

Los objetos son 煤tiles cuando se crean nuevos usuarios o cuando se necesitan guardar elementos sin nombre clave.

Es importante entender la diferencia entre los dos para saber cu谩ndo usar uno u otro.

Para evitar que una funci贸n con ciclo for nos devuelva 鈥渦ndefined鈥, debemos asegurarnos de que la condici贸n del ciclo sea menor y no menor o igual al tama帽o del array.

Si la condici贸n del ciclo es menor o igual, se ejecutar谩 una vez m谩s y, como los arrays comienzan en cero, si intentamos acceder a la posici贸n que corresponde a la longitud del array, la cual no existe, nos devolver谩 un 鈥渦ndefined鈥.

Adem谩s, si queremos imprimir en una l铆nea cada propiedad de un objeto, debemos convertir el objeto en un array con la funci贸n Object.values, lo que nos permitir谩 imprimir cada valor en una l铆nea diferente.

<let silla = {
    color: 'cafe',
    Ancho: 87,
    Largo: 120,
    Modelo: 2023,
    Marca: 'Rimax',
function imprimirPropiedadesdelObjecto(obj) {
      for (let key in obj) {
        console.log(obj[key]);
      }
  }
  imprimirPropiedadesdelObjecto(silla);//cafe,87,120,2023,Rimax

  };> 

Esta es mi solucion para el ultimo ejecicio

function imprimirObjeto (obj){
for (let key in obj) {
		console.log(key + ':' + obj[key]);
	}
}

mi soluci贸n


function imprimir(valor){

    if(Array.isArray(valor)){
        for (const iterator of valor) {
            console.log(iterator)
        }
        return ;
    }

    for (const key in valor) {
       console.log(valor[key])
    }
   
}


const obj ={
    Nombre:"Lucario El Puerco Chaman",
    edad:29,
    habilidad:"Correr",
}

imprimir(obj)

imprimir([1,2,3,4,5,6]);
 

let numeros = { uno: 1, dos: 2, tres: 3 };

function convertirArray(convertir) {
arrayConvertido = Object.values(convertir);
return arrayConvertido;
}

function imprimir() {
arrayConvertido.forEach(function (resultado2) {
console.log(resultado2);
});
}

convertirArray(numeros);
imprimir();

let miAuto = {
	marca: "Mazda",
	modelo: "MAZDA2",
	anio: 2022,
	puertas: 4,
	color: "Plateado"
};

let persona = {
    nombre: "sonia",
	nacionalidad: "Mexicana",
	anioDeNacimiento: 1995
};
function imprimir(objeto){
    for(let elemento in objeto){
        document.write(elemento + ": ")
        document.write(objeto[elemento]);
        document.write("<br />")
    }
}

imprimir(miAuto);
document.write("<br />")
imprimir(persona);
document.write("<br />")
var vehiculo = {

  brand: "Honda",
  model: "Civic",
  year: 2001,

};
function readObject(vehiculo) {
	const array = Object.values(vehiculo);
  	for (let i = 0; i < array.length; i++) {
    		console.log(array[i]);
 	}
 }
readObject(vehiculo);
  • 驴Qu茅 es un array?
    Un array es una estructura de datos en JavaScript que se utiliza para almacenar y organizar m煤ltiples valores en una sola variable. Los elementos en un array se almacenan en posiciones numeradas llamadas 铆ndices y se acceden mediante estos 铆ndices.

  • 驴Qu茅 es un objeto?
    Un objeto es una entidad independiente que puede tener propiedades y m茅todos. En JavaScript, un objeto es una colecci贸n de pares clave-valor, donde las claves son cadenas (o s铆mbolos) y los valores pueden ser de cualquier tipo de dato, como n煤meros, cadenas, booleanos, arrays u otros objetos. Los objetos en JavaScript se utilizan para representar entidades complejas con propiedades y comportamientos espec铆ficos.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    La elecci贸n entre usar objetos o arrays depende del contexto y de los requisitos espec铆ficos del programa. Aqu铆 hay algunas consideraciones generales:

    • Arrays: Se utilizan cuando necesitas una colecci贸n ordenada de elementos del mismo tipo o similar. Los arrays son 煤tiles cuando quieres acceder a elementos por 铆ndice y realizar operaciones como recorridos, b煤squeda o filtrado de elementos. Por ejemplo, una lista de nombres o una serie temporal de datos num茅ricos se pueden representar como arrays.

    • Objetos: Se utilizan cuando necesitas almacenar y organizar datos m谩s complejos con propiedades espec铆ficas y comportamientos asociados. Los objetos son 煤tiles cuando deseas acceder a los datos mediante claves descriptivas en lugar de 铆ndices num茅ricos. Por ejemplo, para representar una persona con propiedades como nombre, edad y direcci贸n, un objeto ser铆a una elecci贸n adecuada.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    S铆, en JavaScript puedes mezclar arrays con objetos e incluso objetos con arrays. Los arrays pueden contener objetos como elementos, lo que permite almacenar colecciones de objetos relacionados. Del mismo modo, los objetos pueden contener arrays como propiedades, lo que permite almacenar conjuntos de valores relacionados dentro de un objeto. Esta flexibilidad permite estructurar y organizar datos de manera m谩s compleja y adaptable seg煤n las necesidades del programa.
    2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function imprimirPrimerElemento(array) {
  if (array.length > 0) {
    console.log("El primer elemento del array es: " + array[0]);
  } else {
    console.log("El array est谩 vac铆o.");
  }
}

// Ejemplo de uso
const miArray = [1, 2, 3, 4, 5];
imprimirPrimerElemento(miArray);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function imprimirElementos(array) {
  for (let i = 0; i < array.length; i++) {
    console.log("Elemento " + (i + 1) + ": " + array[i]);
  }
}

// Ejemplo de uso
const miArray = ["Hola", "mundo", "!"];
imprimirElementos(miArray);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function imprimirElementosObjeto(objeto) {
  for (let clave in objeto) {
    console.log(clave + ": " + objeto[clave]);
  }
}

// Ejemplo de uso
const miObjeto = { nombre: "Juan", edad: 25, profesion: "Programador" };
imprimirElementosObjeto(miObjeto);

Yo use for in :

let user = {
  name : "David",
  lastName : "Henao",
}

for (let u in user) {
  console.log(`${u} : ${user[u]}`);
}

S铆 solo quieren los valores ser铆a :

for (let u in user) {
  console.log(`${user[u]}`);
}

Yo me confund铆 e hice un arreglo con objetos dentro, despu茅s imprim铆 objeto por objeto, pero bueno ya aprend铆 como imprimir los valores de un objeto con la soluci贸n del profe.

const cars = [
  {
    model: "Mini",
    Year: 2003,
    Color: "Grey",
  },
  {
    model: "Neon",
    Year: 2017,
    Color: "Blue",
  },
  {
    model: "Mazda 3",
    Year: 2021,
    Color: "Red",
  },
];

function stockCars(object) {
  cars.forEach(item => console.log(item));
//   for (let index = 0; index < object.length; index++) {
//     console.log(object[index]);
//   }
}

stockCars(cars);

Les dejo el ejemplo de como imprimir objeto por objeto que est谩n dentro de un array, con forEach y con un ciclo for, esto lo aprend铆 en el curso de manipulaci贸n de arrays con JavaScript.

Extend铆 la funci贸n para que tambien imprima los elementos del array que se encontraba dentro de comidasFavoritas.

usuario =  {
	nombre: "Fulanito",
	edad: 3, 
	comidasFavoritas: ["Pollo", "Palta"]
}


function imprimirElementoPorElementoObjeto(obj){
	const arr = Object.values(obj);
	for(let i = 0; i < arr.length; i++){
        if (Array.isArray(arr[i])) {
            arr[i].forEach(element => {
                console.log(element);
            });
        } else {
            console.log(arr[i])
        }
	}
}

Utilize el m茅todo isArray() del objeto nativo que proporciona JavaScript Array. El cual, si el objeto es un Array, devuelve true; y false, en cualquier otro caso.
Dejo link a la documentaci贸n:
Array.isArray() docs

function ImprinirTodoElObjecto(objeto) {
const llaves = Object.keys(objeto);

for (let i = 0; i < llaves.length; i++) {
	console.log(llaves[i] + " " + objeto[llaves[i]])
}

}

Aqu铆 mi aporte:

function imprimir_objeto(objeto){
    for (var propiedad in objeto){
      console.log(propiedad + ": " + objeto[propiedad]);
    } 
  }

function imprimir(objeto) {

  let claves = Object.keys(objeto);

  for (let i = 0; i < claves.length; i++) {
    console.log(claves[i] + " " + objeto[claves[i]]);
  }
}
imprimir({a: 2, d:3, e:5});

Hice mis soluciones procurando closures y arrow functions jeje

馃幆Solucion al ejercicio 3

  • Usando for 鈥 in documentacion
    La instrucci贸n for-in itera sobre todas las propiedades enumerables de un objeto.
const object = { nombre: "Juan",
  localidad: "Castro",
  color: ["Verde Oscuro", "Caf茅", "Moteado"]};

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
}
// nombre: Juan
// localidad: Castro
// color: Verde Oscuro,Caf茅,Moteado

Lo encontre en Google 馃構

La primera vez no sali贸 y tuve que abrir mis apuntes.

La primera vez: Horrible, sin embargo el concepto de los ciclos est谩 claro.
Empez贸 un bucle infinito y toc贸 reiniciar el Portatil.

function(arr) {
	for(let arr = 0; arr.length <= arr.length; arr.length++) {
	console.log("funcion que imprime Array uno por uno: " + arr[arr.length])
}
}
imprimirElementoPorElemento(["Daniel", "Maria", "Thais", "Marina"])

Despu茅s de ver los apuntes: Todo funciona a la perfecci贸n.

function imprimirElementoPorElemento(arr) {
    for(let i = 0; i < arr.length; i++ ) {
        console.log("Array que imprime sus elementos uno por uno: " + arr[i])
    }
}
imprimirElementoPorElemento(["Daniel", "Maria", "Thais", "Marina"])

Mi soluci贸n

let persona ={
    nombre: 'Obed',
    apellido: 'Tzay',
    edad: 23
}
const imprimirObjeto = person =>{
    for (const key in person) {
        console.log(`mi ${key} es: ${person[key]}`);
    }
}
imprimirObjeto(persona);

Imprimi los elementos de los objectos con un ciclo for in

function allObjForIn(obj) {
    for (const element in obj) {
        console.log(obj[element]);
    }
}

Hola platzi amigos, existe un tipo de ciclo for llamado For In, el cual nos permite iterar un objecto a traves de sus keys, por ejemplo:

// Declaramos un objeto de ejemplo
let obj = {
    nombre: 'Fernando',
    edad: 21, 
    userName: 'fosuna'
}
//declaramos la funcion para imprimir los valores
function imprimirValoresObj(obj){ // obj representa un objecto cualquiera
    for(i in obj){
	
// Analizemos el for de arriba
// (i) representa las keys (el nombre de las propiedades)
//en cada vuelta tomara una key y ese sera el valor de i
// en este caso si mandamos nuestro objeto obj, en la primera vuelta i valdra
// nombre, en la segunda valdra edad y en la tercera UserName

        console.log(obj[i]) // aqui accedemos al valor del objeto usando la variable i
    }
}
imprimirValoresObj(obj) // ejecutamos la funcion

El codigo anterior imprime:
Fernando
21
fosuna

Esta es la forma con la cual yo resolvi el ejercicio, desde mi punto de vista, es mucho mas practico cuando queremos iterar un objeto que transformarlo a un array, cualquiera de las 2 formas esta excelente!!!

馃鉁

JavaScript es muy interesante ;-;
Yo entend铆a por un 鈥榦bjeto鈥 a la instancia de una clase, pero dicho concepto est谩 m谩s relacionado con la Programaci贸n Orientada a Objetos. Sin embargo, en JavaScript se puede determinar como objeto a un tipo de dato que tiene propiedades, tal como una clase podr铆a tener atributos.
.
La diferencia que encuentro es que la clase se puede reutilizar como una plantilla para distintos objetos con los mismos atributos o m茅todos. Pero en si, los conceptos vendr铆an a ser los mismos.

Yo lo hice as铆

function printObjectElements(object) {
    for(let items in object) {
        console.log(object[items]);
    }
}

Como traer un elemento por uno del array
Una de muchas soluciones
podemos intentar en el for que la variable i < 3

podemos usar ciclo while o do while.

function imprimirPrimerElementoArray(arr) {
    for(let i = 0; i <=2; i++ ){
        console.log(arr[i])
    }  
}

Utilice el forEach para los arrays y la opcion Object.entries para iterar los objetos.

let guitars= ["gibson","Jackson","fender"];

//Imprime primer elemento del array
 function firstElement(array){
	console.log(array[0]);
}
firstElement(guitars);

//Listar Array
let list = " ";
guitars.forEach(allElements);

function allElements(item,index){
    list = item + " " + index;
    console.log(list);
}


var myCar = {
    make: 'Ford',
    model: 'Mustang',
    year: 1969
};

//Listar Objetos
Object.entries(myCar).forEach(([key, value]) => {
    let objList = key + ": " + value;
    console.log(objList)
  });

Aqui un poco de codigo que puede ayudar a comprender un poco mas el tema:

// code
[1,2,3].push(4); // [1,2,3,4]
[1,2,3].pop(); // [1,2]
[1,2,3].shift(); // [2,3]
[1,2,3].unshift(0); // [0,1,2,3]
['a','b'].concat('c'); // ['a', 'b', 'c']
['a','b','c'].join('-'); // a-b-c
['a','b','c'].slice(1); // ['b','c']
['a','b','c'].indexOf('b'); // 1
['a','b','c'].includes('c'); // true
[3,5,6,8].find((n) => n % 2 === 0); // 6 - el resto de dividir 6/2 = 0
[3,5,6,8].findIndex((n) => n % 2 === 0); // 2 - el primer elemnto en cumplir la condicion se enceuntra en la posicion 2
[3,5,6,8].map((n) => n * 2); // [6, 10, 12, 16]
[3,5,6,8].filter((n) => n % 2 === 0); // [6, 8]
[3,5,6,8].reduce((acumulador, currentValue) => acumulador + currentValue); // 22
[3,5,6,8].every((n) => n < 10); // true - la condicion de cumple
[3,5,6,8].some((n) => n > 6); // true - la condicion de cumple
[3,5,6,8].reverse(); // [8, 6, 5, 3]
[3,5,6,8].at(1); // 5
[3,5,6,8].at(-2); // 6

M谩s info aqui

Ultimo ejercicio, mi solucion 馃槂

let myObject ={
    nickName: ": alma",
    level: ": expert",
    position: ": my pet",
}

function printMyObject(object){
    for(let property in object){
    console.log(property + " " + object[property]);
    } 
}

printMyObject(myObject); 

Listas
1.- Responde:

  • 驴Qu茅 es un array?
    Es un objeto tipo lista que almacena una serie de datos organizados en un 铆ndice y separados por comas.

  • 驴Qu茅 es un objeto?
    Estructura de datos que almacena datos en 鈥渃lave : valor鈥, entre llaves y separados por comas.

  • 驴Cu谩ndo es mejor usar objetos o arrays?
    Un array guarda valore simples, por ejemplo, una lista de nombres o una lista de edades. Un objeto guarda m谩s datos, propiedades con distintos valores. Por ejemplo un perfil completo: nombre, profesi贸n, edad y m谩s.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
    Si . Un objeto puede tener arrays por dentro y un array puede guardar a varios objetos.

2.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento:

3.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno:

4.- Crea una funcionque pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno:
No me sali贸 como deber铆a 馃榿

Haciendo el curso con TypeScript

      function printFirstElement(...params: (string | number)[]):void{
        console.log(params[0]);
      }
      printFirstElement('hola', 1,23,4,5,'hola');

      function printInArray(parametros: (number | string)[]):void{
        console.log(parametros[0]);
      }

      function printAll(parametros: (number | string)[]):void{
        parametros.forEach((item) => {
          console.log(item);
        });
      }
      let myArray: (string | number)[] = [254,35,967,6,84,95,7,'con','strings','hi'];
      printAll(myArray)

Me parece m谩s apropiado para lo de imprimir las propiedades del objeto:

function imprimirPropiedadPorPropiedad(objeto){
	for (property in objeto){
		console.log(property + ": " + objeto[property]);
	}
}

con forEach es un poco mas sencillo

let personas=[鈥渕onse鈥,鈥渃aro鈥,鈥渆milio鈥漖

personas.forEach(function(persona){console.log(persona)})

Imprime todos lo elementos de un array.

nameArray.forEach(e => console.log(e))

Documentaci贸n. 馃憜

Ya que hab铆a que investigar, me pareci贸 esta una mejor opci贸n

function showProps(obj) {
  for (let i in obj) {
    console.log(`${obj[i]}`);
  }
}

El ultimo punto lo hice de esta manera

function personObject(numObject){
    

    for (const key in numObject) {
      
        console.log(key+": " +numObject[key]);
        
    }

 }

 const persona={
    nombre:"juan",
    apellido:"rodriguez",
    edad:22
}

 personObject(persona);


Mis apuntes en Notion 馃槃

APUNTES

function imprimirPorElemento(arreglo){
	for (let i;i++;arreglo[i]){
		console.log(arreglo[i]);
	}
}
imprimirPorElemento(['manzana','Peras','Durazno']);

As铆 fue que resolv铆 . la ultima pregunta del test
let objeto_1 = {
nombre: 鈥楲eticia鈥,
apellido: 鈥楲opez鈥
}
let objeto_2 = {
apodo: 鈥楯ulieta鈥,
edad: 23,
deporte: 鈥榖eisbol鈥
}
const imprimir_objeto = (objeto) => {
let propiedades = Object.entries(objeto);
propiedades.forEach(function(elemento){
console.log(${elemento});
})
};
imprimir_objeto(objeto_1);
imprimir_objeto(objeto_2);

Listas

1锔忊儯 Responde las siguientes preguntas en la secci贸n de comentarios:

  • 驴Qu茅 es un array?

    Es una estructura de datos varios que pueden ser anidados.

  • 驴Qu茅 es un objeto?

    Es una estructura de datos que tiene propiedades y m茅todos simulando objetos reales.

  • 驴Cu谩ndo es mejor usar objetos o arrays?

    Cuando tenemos propiedades relacionadas a una entidad y esa entidad es repetitiva, es mejor usar objetos.
    Cuando tenemos un conjunto de objetos de alguna manera relacionados es mejor usar arrays.

  • 驴Puedo mezclar arrays con objetos o incluso objetos con arrays?

    S铆, y de esta forma: los arrays pueden tener objetos como elementos; podemos usar el spread operator para convertir arrays en objetos.

    const stuff = [{a: 10},{b: 20},{c: 40}];
    
    const arr = ["foo", "boo", "zoo"];
    const obj = {...arr};
    console.log(obj);
    // output
    {0: "foo", 1: "boo", 2: "zoo"}
    

2锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

const seasons = ['winter', 'spring', 'autumn', 'summer'];
let mySeason = (arr) => console.log(arr[0]);
mySeason(seasons);

3锔忊儯 Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

const racquetSports = ['Tennis', 'Ping Pong', 'Squash', 'Badminton', 'Paddle', 'Racquetball', 'Fronton', 'Pickleball', 'Beach Tennis', 'Touchtennis'];
let sports = arr => { arr.forEach(sport => console.log(sport)) }
sports(racquetSports);

4锔忊儯 Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

let skills = {'softskill': 'Pleasurable', 'hardskill': 'Git'};
let mySkills = arr => {for(let skill in skills) console.log(`馃憠馃徎 ${skill}: ${skills[skill]}`)};
mySkills();

objecr.values convertir un objeto en array :)

Es mejor usar el 鈥渇or鈥n鈥 para estos casos de recorrer un objeto.

function solution(objt){
    for(let key in objt){
        console.log(objt[key])
    }
}

solution({
    nombre: "Juan",
    apellido: "Moreno",
    edad: 21,
    padres: [
        "Blanca",
        "Jhon"
    ]
});
const array1 = ['uno', 'dos', 'tres'];
const obj = {
     nombre: 'Jonathan',
     apellido: 'Olmedo',
     Edad:23
 };

const imprimircadaelemento = (arr) => {
    arr.map((item) => {
        console.log(item)
    })
};

imprimircadaelemento(array1);
imprimircadaelemento(Object.values(obj));

Otra forma de imprimir cada elemento del array es utilizar el for (const element of array)

const array = [1, 3, 4, 6, 7, 9, 20];

for (const element of array){
	console.log(element);
}
// 1, 3, 4, 6, 7, 9, 20

Mi soluci贸n fue con un for in. En el ejemplo de mi c贸digo esta muy simplificado pero con la auto ayuda de vsCode nos da un ejemplo de codigo con detalles.

function imprimirObjeto(obj){
    for (const o in obj) {
        const valor = obj[o];
        console.log(valor)
    }
}

imprimirObjeto({
    name: 'samuel',
    apellido: 'morales',
    edad: 23,
})

function array(arreglo){
return console.log(arreglo[0]);
};
array([鈥淗ola鈥, 鈥淧eru鈥, 4]);

function imprimir(arr){
for(let i=0;i<arr.length;i++){
console.log(arr[i]);
}
}

//llamamos al la funcion

imprimir([鈥淗ola鈥, 2, true, 鈥淓duardo鈥漖);
Hola
2
true
Eduardo

Soluci贸n alternativa del ejercicio 4:


/*
   Aclaraciones previas:
   - La funcion "cl()" solo es una funci贸n mia auxiliar que uso para ejecutar un console log con menos caracteres.
   - La constante contenedor es por que tengo un html donde lo muestro en un div#contenedor el resultado.
   - Este c贸digo es una alternativa a transformar el valor de las propiedades en un array.
*/

const contenedor = document.querySelector("#mostrar");

let friend = {
    "name" : "Miguel",
    "phone" : "600 000 001",
    "mail" : "[email protected]",
    "edad" : 40,
    "maried" : false  
}

// Esta funci贸n la mantengo en todos los ejercicios porque me sirve para mostrar resultados en un html
let imprimirResultado = (resultado)=>{
    // uso dos formas de visualizar los resultados
    contenedor.innerHTML+= `<br> ${resultado}`;  
}

// Funci贸n para recorrer
let recorreValoresObjeto = (obj)=>{
    for(let nombrePropiedad in obj){
        let resultado = `Este es el valor de la propiedad ${nombrePropiedad}: ${obj[nombrePropiedad]} <br>`;
        imprimirResultado(resultado); //mostrar resultado en HTML
        cl(resultado.replace('<br>',''));  // mostrar resultado por consola eliminando los "<br>"
    }
}

recorreValoresObjeto(friend); // Llamada a ejecutar funci贸n

Como dijo el profesor, no hab铆a manera de recorrer las propiedades de un objeto.
Lo primero que pens茅 fue pasar de manera convencional el objeto a un Array.
e.j.

miAuto = {
    marca: "Tesla",
    modelo: "Modelo S",
}
let arrayDeprueba = miAuto;

/* La Array obtiene el objeto completo y no sus propiedades como tal, por lo tanto no es posible recorrerlas "una por una" usando [0] */

Luego de buscar y sentir la emoci贸n equivalente a un jugador de DarkSouls.
Puedo encontrar la soluci贸n, o al menos funciona.

/* Si utilizamos el metodo: Object.keys(nombreDelObjeto), aqu铆 si devuelve las propiedades de un objeto como si fueran Arrays pudiendo recorrerlas con [0] */
let miAuto = {
    marca: "Tesla",
    modelo: "Model S",
    annio: 2012
}
let claves = Object.keys(miAuto);
for(let i = 0; i < claves.length; i++) {
    console.log(miAuto[claves[i]]);
}
<let obj = {
    nombre:"Marcos",
    edad:"31",
    profesion:"Ing de sistemas"
}

function imprimeObjeto(obj){
   
    var elementos= Object.entries(obj);

    for(var i = 0; i < Object.keys(obj).length;i++){
        console.log(elementos[i]);
    }
    
}> 

Yo lo hice de otra forma , con utilize for in

Dejo mi aporte:

var object={
    number: 1,
    model: "tesla",
    year: 2022,
    color: "red"
};
function exit(param){
    for(var params in param){
        console.log(`${params}: ${param[params]}\n`);
    }
};

exit(object);

Resultado:

number: 1
model: tesla
year: 2022
color: red

Muchas gracias a esa pregunta trampa del objeto me hizo aprender muchisimo me gustan mucho esos tipos de retos

Creo que usando el for in es mas sencillo imprimir los valores de un objeto. Y si es un array for of.

const obj = {
    nombre:"Fulanito",
    edad: 3,
    comidasFavoritas:["pollo frito","vegetales"],
};
const printObject = (obj)=>{

    for (element in obj){
       console.log(obj[element]);
    }
    
}

Gracias a los dioses de la programaci贸n, d铆 con la clase correcta, para resolver el 煤timo ejercicio

https://platzi.com/clases/1815-ecmascript-6/25944-que-se-implemento-en-es8/

en donde nos muestra que, de conformidad con el ECMAScript versi贸n es8, si tienes on objeto

const cdProjektRed = {
  game: 'Cyberpunk 2077',
  year: '2020',
  country: 'Poland'
}

puedes reconvertir el objeto a un array, utilizando el m茅todo de Object.values, para reconvertir este objeto a un array, y as铆 obtener los valores en forma de array

const entries = Object.values(cdProjektRed);

como ya tienes el objeto en forma de array, utilizas un ciclo para imporimir tales valores

for(let i=0;i<entries.length;i++){
  console.log(entries[i]);
}
Cyberpunk 2077
2020
Poland

en mi caso, el problema de crear una funcion que reciba cualquier objeto lo resolvi asi porque queria que imprima no solo el valor sino tambien el nombre del valor

let pokemondetails = {nombre: "Chikorita", numPokedex: 152, tipo: "Planta", generacion: "Segunda", habilidad: "Espesura"};

let improbj = function (anyobject) {

    for (let property in anyobject) {
        console.log (`${property}: ${anyobject[property]}`)
    }
}

con el for in lo resolv铆 sin problema

Yo utilic茅 arrows function y map.

const imprimeArray = arrays2 => arrays2.map(element=> console.log(element))
imprimeArray([1,3,7,86,5]);

驴Cu谩ndo es mejor usar objetos o arrays?

Un Array, para mi, es mejor cuando todos los datos que estan alli representan un mismo tipo鈥 valor鈥 mmm鈥 ejemplo:

nombres=[鈥楯uan鈥, 鈥楻uben鈥, 鈥楽ergio鈥橾
productos=[鈥榗amisa鈥, 鈥榩antalon鈥, 鈥榯enis鈥橾

y el objeto para una representaci贸n de datos especificos de un solo elemento o una abstracci贸n del mundo鈥 mmm鈥 ejemplo:
estudiante = {
nombre:" 鈥,
apellido:鈥 鈥,
edad:鈥 "
}

Y que tal si tenemos una lista de clientes:

clientes = [ 
	{
		nombre: "cliente1",
		identificaci贸n: 123456789
	},
	{
		nombre: "cliente2",
		identificaci贸n: 987654321
	}
]

Yo puse en practica los de llamar a una funci贸n dentro de otra funci贸n para hacer un poco m谩s legible mi c贸digo.

function lista(arr){
            for(i=0; i<=arr.length; i++){
                console.log(arr[i]);
            }
        }

function listaObjeto(obj){
            const objeto = Object.values(obj);
            lista(objeto);
        }

const obj = {
            nombre: "Carlos",
            apellido: "Villatoro",
            edad: 25,
        }

listaObjeto(obj);

En el ejercicio # 2, utilice un m茅todo de 鈥渧aciar鈥 el array con .shift e ir mostrando los elemento que se van eliminando uno por uno.
As铆 se listan todos tambi茅n:

function lista (arr) {
    for (i=arr.lenght; i=arr.length; i--) {
        elementoArray = arr.shift();
        console.log (elementoArray);
    }
}

lista (["come", "duerme", "programa", "repite"]);


En el ejercicio # 2, utilice un m茅todo de 鈥渧aciar鈥 el array con .shift e ir mostrando los elemento que se van eliminando uno por uno.
As铆 se listan todos tambi茅n:

function lista (arr) {
    for (i=arr.lenght; i=arr.length; i--) {
        elementoArray = arr.shift();
        console.log (elementoArray);
    }
}

lista (["come", "duerme", "programa", "repite"]);

En el ejercicio # 2, utilice un m茅todo de 鈥渧aciar鈥 el array con .shift e ir mostrando los elemento que se van eliminando uno por uno. As铆 se listan todos tambi茅n:

function lista (arr) {
    for (i=arr.lenght; i=arr.length; i--) {
        elementoArray = arr.shift();
        console.log (elementoArray);
    }
}

lista (["come", "duerme", "programa", "repite"]);

馃槂 Arrays y objetos
1.- Responde las siguientes preguntas en la secci贸n de comentarios:
驴Qu茅 es un array?
Es una estructura de datos tipo objeto que almacena una lista ordenada de valores.
驴Qu茅 es un objeto?
Es una entidad independiente con propiedades y una propiedad es la asociaci贸n entre un nombre (o clave) y un valor.
驴Cu谩ndo es mejor usar objetos o arrays?
Es mejor usar los arrays cuando almacenamos m煤ltiples valores de una sola variable y los objetos cuando almacenamos m煤ltiples valores de m煤ltiples variables.
驴Puedo mezclar arrays con objetos o incluso objetos con arrays?
S铆.

2.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima su primer elemento.

function miFuncion(array){
    console.log(array[0]);
}
var input = prompt('Ingresar un array (separando los argumentos solo con una coma):');
var array = input.split(',');
miFuncion(array);

3.- Crea una funci贸n que pueda recibir cualquier array como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el array completo).

function miFuncion(array){
    for(var i = 0;i<array.length;i++){
        console.log(array[i]);
    }
}
var input = prompt('Ingresar un array (separando los argumentos solo con una coma):');
var array = input.split(',');
miFuncion(array);

4.- Crea una funci贸n que pueda recibir cualquier objeto como par谩metro e imprima todos sus elementos uno por uno (no se vale imprimir el objeto completo).

function miFuncion(object){
    array= Object.values(object);
    for(var i = 0;i<array.length;i++){
        console.log(array[i]);
    }
}
var miObjeto = {
  nombre: 'Luigi',
  primerApellido: 'del Carpio',
  segundoApellido: 'Mendiola'
};
miFuncion(miObjeto);

Para imprimir los valores de las propiedades de un objeto uno por uno sin necesidad de convertirlo a un arreglo podemos usar el ciclo for in:

En w3schools.com puedes encontrar la explicaci贸n del ciclo for in.

Con respecto a lo de la diferencia entre array y objeto creo que falto el punto clave del array, que al final es guardar una colecci贸n de elementos (por algo es un tipo de lista), yo lo cambiar铆a as铆:
Arrays para cuando se requiere guardar una colecci贸n de datos, del mismo tipo o no, incluso objetos y otros arrays. Objeto cuando ocupamos representar un objeto real en memoria por medio de atributos y sus valores (como dice Juan, el nombre del elemento importa).

Para a帽adir, en la universidad ten铆a un profesor que nos dec铆a que como buena pr谩ctica en programaci贸n (orientada a objetos), es que siempre y cuando podamos ejecutar un ciclo con un m茅todo propio del elemento opt谩ramos por est茅 en vez de un for o while que son correctos pero que 鈥渟on llamados por algo externo en vez del objeto鈥, esto tiene un nombre pero no me acuerdo cu谩l era. Por lo anterior opt茅 por el forEach visto en el curso b谩sico para mantener esta responsabilidad en el objeto mismo, aqu铆 mi soluci贸n:

let myArray = ["Element1","Element2","Element3"];

function myElements(userArray)
{
    userArray.forEach(element => {
        console.log(element);
    });   
}

myElements(myArray);

Los 煤ltimos dos los hice usando For/of y for/in

Array

let frutas = ["manzana", "platano", "Cereza", "Fresa"];

function readFrutas(array){
    for(let x of array){
        console.log(x); 
    }
}

Objeto

let frutas = {
    modelo: "grande",
    color: "rojo"
};

function readObject(objeto)
{
    for(let key in objeto){
        console.log(objeto[key]);

    }

Es interesante saber como en este caso el for/of queda perfecto para los arrays y el for/in para los objetos.

para iterar cada elemento

let arr=['ana','claudia','maria'];
arr.map(element => {
    console.log(element);
});
for (const key of arr) {
    console.log(key);
}