Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Arrays

4/29
Recursos

Aportes 45

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Un array SIEMPRE va a iniciar en la posición 0.
.
En lenguajes como C tú tienes que definir la cantidad de memoria que quieres reservar para ese array. Esto hace que su uso sea eficiente, pues la computadora no tiene que estar reservando más espacios “por si a caso”.
.
Un array dinámico reservará un poco más de espacio del que necesita, y cuando este espacio se acabe reservará aún más espacio. Recuerda que la computadora tiene que buscar slots consecutivos disponibles para asignar ese espacio y mientras más información haya guardada más difícil será encontrar este espacio.

La búsqueda binaria es ventajosa sobre una búsqueda lineal estándar porque busca más rápido y más eficientemente es lo que llamamos “divide y vencerás”.

👾 Arrays

<h4>Ideas/conceptos claves</h4>

Array es una colección de información

Arrays estáticos son aquellos que se quedaran fijos debido a que definimos cuantos espacios tendremos, es decir que le diremos a la maquina cuantos slots deberá usar

Arrays dinámicos son aquellos que podemos mutar

<h4>Apuntes</h4>
  • Los arrays son como una lista con indices numerales consecutivas

  • Tambien son conocidas como listas

  • Tenemos diferentes métodos construidos por el lenguaje

    • Push ⇒ Agregar un elemento al final del array
    • Pop ⇒ Borra el último elemento
    • Unshift ⇒ Agrega un elemento al inicio del array
    • Shift ⇒ Borra el primer elemento
    • Splice ⇒ Agrega un elemento en una parte del array
  • Si nosotros agregamos un elemento al inicio debe haber ciertas operaciones que deben suceder

  • Existen dos formas de arrays

    • Estáticos ⇒ Definimos cuantos slots exactamente vamos a usar
    • Dinámicos ⇒ JS Maneja de forma por defecto
    <h3>Array estático</h3>
  • La computadora sabe de dónde a donde esta cada información o en este caso el numero exactamente
  • La computadora de inicio es darle una cantidad de slots considerable
  • Si es que pasara el límite buscara más espacio en memoria del que está pidiendo la lista
    • Para eso copiara la información y la trasladara a donde encuentre conveniente
    • Los espacios anteriores los libera

RESUMEN: Existen dos tipos de listas, los estáticos que estas cuentan con slots de memoria definidos por nosotros y los dinámicos, estos se usan por defecto JavaScript, requieren una considerable cantidad de memoria la cual puede crecer a medida que lo necesitemos

<h3>arrays ♥</h3>

Es una de las estructuras de datos mas básica y que probablemente ya hayas utilizado, es muy común que cuando no sepamos sobre este tema de Data Strucutures todo absolumente todo lo metamos en un array y ya esta. Esto no suele ser buena practica ya que los arrays no son la mejor de las soluciones en muchos casos
Son una collection de information, donde cada elemento (los valores que guardemos separados por coma) dentro del array tiene una posición, (Siempre iniciamos a contar en la posición 0).
.

  • En js tenemos métodos que nos ayudan a manipularlos y recorrerlos.
  • También existen los arrays dinámicos y estáticos. Por default en Js todos los arrays son dinámicos.
<h3>Array</h3>

Es una collección de información

  • Su posicion o indice siempre empieza en 0

Metodos:

  1. PUSH -> Agrega un elemento al final del array
  2. Pop -> Borra el ultimo elemento
  3. Unshift -> Agrega un elemento al inicio del array
  4. Splice -> Agrega un elemento en una posición específica del array

Tipos:

  • Estático: Tiene un tamaño por defecto, definido “manualmente”. No se puede modificar su tamaño, si se desea agregar mas datos en el toca “clonarlo” y crear otro array con la información clonana y la nueva.
  • Dinámico: Su tamaño (en JS)) es el doble de la informacion proporcionada, por ejemplo:
const arr = [1, 2, 3]

JS por defecto va a crear un array con 6 espacios o posiciones.

  • A diferencia de los estáticos, los dinamicos pueden modificarse siempre cuando respete ese tamaño que le proporciona el lenguaje. De lo contrario toca hacer el mismo proceso de “clonarlo”

Los arrays son una coleccion de informacion almacenada en la memoria, donde su tamaño depende de si el array es estatico o dinamico.

Un array estático es aquel que le avisa a la memoria cuantos slots utliza, como en C++. Si se requiere que este tamaño aumente lo que hace la memoria es copiar los datos obtenidos y añadirle el nuevo dato en un nuevo espacio de memoria para posteriormente eliminar el antiguo.

//Código en C
int arre[5] = {1, 2, 3, 4, 5};

Un array dinámico No avisa a la memoria cuanto espacio va a ocupar, por lo tanto la memoria le va a asignar el doble de slots de su memoria inicial en caso de que se llegue a necesitar más espacio. Si se ocupa mas de lo solicitado de memoria ocurre algo similar que con los estáticos, Se copia el nuevo valor de los slots a un espacio disponible el cual sera del máximo anterior multiplicado por 2.

//Código en JS
let arre = ["Diego", "Karen", "Michi"];

Si a alguien le sirve les comparto mis apuntes que hice en un HTML 😄

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Arrays</title>
</head>
<body>
    <h1>Métodos</h1>
    <ul>
        <li><b>push: </b> agrega un elemento al final del array</li>
        <li><b>pop: </b> borra el último elemento</li>
        <li><b>unshift: </b> agrega un elemento al inicio del array</li>
        <li><b>shift: </b> borra el primer elemento del array</li>
        <li><b>splice: </b> agrega un elemento en una parte del array</li>
    </ul>
</body>
</html>

😃 Todo lo que menciona, puede ser aplicado a otro lenguaje de programación. Este es un conocimiento reutilizable.

Genial la clase, me gusta como explica De Granda, sabe traer a ejemplos cotidianos todos estos conceptos tecnicos con palabras sencillas y familiares

Para los arrays :la búsqueda, inserción y borrado son BIg O(n) en complejidad de tiempo.

Array estatico

array nums = [4, 8, 5]

la PC sabe en que slot comienza cada dato del array
2 al 9 = numero 4 = 1 byte
10 al 17 = numero 8 
18 al 25 = numero 5
cada numero ocupa 1byte , osea 8 bits

Array dinamico

array nums = [4, 8, 5] == [4, 8, 5, X, X, X,]

en un array dinamico, el array se crea con 3 elementos ya definidos, pero el array en total reserva el doble de elementos
si creamos un array de 3, crea uno con 6 espacios disponibles en memoria... pero si le agregamos elementos hasta llegar a 7, js lo que va a hacer es crear un nuevo array con 12 slots, y va a copiar los elementos que tenia el array inicial en este nuevo array, va a agregar el 7mo  elemento en el nuevo array y luego va a borrar al array original para optimizar el espacio de memoria

Para las personas que no venimos de lenguajes de tan bajo nivel , es fabulosa esta explicación.

ME MATO EL L CHIQUITO QUE OBSERVA LA CLASE muy buena clase por cierto!!!

Arrays

Son coleciones de informacion, pueden ser representados asi:

0 - Diego 
1 - Karen 
2 - Oscar 
3 - Paulina 
4 - Ulises 
5 - Ana 

Metodos

  • push: Agrega un elemento al final del array
  • pop: Borra el ultimo elemento
  • unshift: Agrega un elemento al inicio del array
  • shift: Borra el primer elemento
  • splice: Agrega un elemento en una parte del array

Tipos de arrays

estáticos y dinámicos

Arrays estáticos

Al ser creados se declara su dimensión o tamaño, cantidad de slots que asignamos en memoria, y no puede ser redimensionado nuevamente

Array dinámicos

Al ser creados no debemos declarar su dimensión o tamaño, cantidad de slots que asignamos en memoria, y puede ser redimensionado o modificado cuantas veces se desee

Me hizo Limpiar la Panatlla

¡Hola! xD
Para quien le pueda servir les comparto este artículo que escribí respecto a los arrays. Hope you like it!!!
https://deleonnet.com/blog/javascript/arrays/

Los arrays son una colección de información, y tienen métodos para manejar esta información.

Existen dos tipos de arrays

  • Estáticos: Definimos la cantidad de slots que usaremos.
  • Dinámicos: La cantidad de slots en memoria es predeterminado.
Listas de datos Métodos de arrays (push, pop, unshift, shift, splice) * Arrays Estáticos y Dinámicos * Estáticos * Deben especificar su tamaño al momento de la creación * En memoria se asigna un espacio fijo que no se puede cambiar * Ejemplos en otros lenguajes: C y C++ * Dinámico * El tamaño puede cambiar dinámicamente en la ejecución del programa * En memoria, se asigna un espacio que puede aumentar y disminuir según sea necesario * JavaScript usa arrays dinámicos
**ARRAYS** *Los **arrays** en* **JavaScript** *son **estructuras** de **datos** que permiten **almacenar** y **gestionar** **colecciones** **ordenadas** de **elementos**, **accesibles** mediante **índices** **numéricos**. Son **altamente** **versátiles** y pueden **contener** **distintos** **tipos** de **datos**, **incluyendo** **otros** **arrays**, **objetos** y **funciones**. Los **arrays** **proporcionan** **métodos** **integrados** para **operaciones** **comunes** como la **adición**, **eliminación** y **búsqueda** de **elementos**, lo que los **convierte** en una **herramienta** **fundamental** para el **desarrollo** **web** **eficiente**.* **ARRAYS DINÁMICO** *Los **arrays** **dinámicos** son una **extensión** de los **arrays** **tradicionales** que permiten **ajustar** su **tamaño** **automáticamente** a medida que se **añaden** o **eliminan** **elementos**. En* **JavaScript***, los **arrays** son **intrínsecamente** **dinámicos**, lo que **significa** que **no** es **necesario** **definir** su **tamaño** **inicial**. Esta **flexibilidad** **simplifica** la **gestión** de **datos**, permitiendo a los **desarrolladores** **trabajar** con **colecciones** de **tamaño** **variable** **sin** **preocuparse** por la **reasignación** **manual** de **memoria**.*

Tuve que ver casi unas 4 veces para poder entender estas 4 clases jaja nose si es un tema muy sencillo o yo estoy muy menso pero lo bueno es que asta ahorita ya le entendí perfectamente bien jaja

Diego: "Seguramente tu has de pensar, yo ya se construir un Array, NOO, no sabes nada mi chavo" min. 6.45 🤣🤣🤣

que hermoso curso! siempre quise saber como funcionan los datos por dentro y como se hacian, al fin ♥ grande platzi!!

Arrays o listas : son una colección de información.
al generar nuestra colección de información iniciamos de 0 hasta x cantidad de información que tengamos guardada y como valor tenemos la información que queramos estar guardando.
En esta lista de datos nosotros generamos un indice para cada una de la información que guardamos y estos son de forma consecutiva.
Hay metodos que nos ayudan poder manipularlos:

push = Agregar un elemento al final del array
pop = Borra el último elemento
unshift = Agrega un elemento al inicio del array
shift = Borra el primer elemento
splice = Agrega un elemento en una parte del array

ARRAYS ESTÁTICOS Y DINÁMICOS
¿Como manejo los arrays dinamicos y estaticos?

Javascript manejo siempre los arrays dinámicos, se pueden cambiar los arrays, pueo agregar, quitar o cambiar elementos, se puede cambiar elementos deacuerdo a lo que se necesitando.

Cuando marcamos cual es la dimención de este array o lista se guardaria en memoria asi como lo muestra la imagen.

Si queremos mutarlo en memoria seria esto:

Aqui vemos los slots que están usando directamente está lista, eso es porque ya se le dijo a la computadora que necesitamos tres slots para poder guardar estos tres datos.
la computadora sabe que del

2 al 9 nos referimos en todo lo binario que tenga que ver con el numero 4,
10 al 17 con todo lo que tenga que ver con el 8
18 al 25 con todo lo que tenga que ver con el 5

Si queremos crecer la información tenemos que borrar toda la información, clonarla en otro espacio y agreagarle los slots extras, ¡pero! esto seria un problema.

Los dinamicos que es como funciona Javascript.
Cuando creamos una lista con 3 arrays o elementos javascript le va a decir a la computadora y a la memoria, que tiene 3 elementos que agregar pero necesita 6 slots disponibles (duplica la cantidad de elemento que va a necesitar ) porque puede ser que este crezca. Si tenemos un septimo elemento la computadora copia estos 6 slots, busca los 6 slots disponibles, pero como ahora se necesitamos 7 tiene que buscar 12 slots, cuando ya encuentre los 12 slots en una memoria aleatoria, los va a marcar y copiar la información que ya tiene con o otros 6 espacios disponibles para que pueda seguir creciendo ese array y los 6 espacios que teniamos antes los libera y los deja como memoria libre.

Excelente clase

== Arrays ==

  • Un array o lista, es una coleccion de informacion, pueden ser estaticos o dinamicos, javascript en particular maneja por default los arrays dinamicos y C maneja las listas de forma estatica.

  • Estaticos: La computadora sabe de dónde a donde esta cada información en memoria o en este caso el numero exactamente.

const num = [2,5,6,0];
  • Dinámicos: No se especifica el tamaño de la lista, por ende la memoria debe otorgar una cantidad considerable de slots
    por si la lista aumenta.
const num = [2, 5, 6, 0 , , , ];

Hice una pausa al minuto 5:38 solo para decir que este curso es maravilloso, La manera en que lo explica el profe Diego De Granda es increíble.

📍 Arrays:

Son una colección de información. Empezamos desde la ubicación 0.

Generamos un índice para cada dato que guardamos. También se les conoce como listas.

Tienen muchos metodos para poder manipularlos. Por defecto los Arrays en JS son dinámicos.

✨ Dinámico ⇒ Es un Array que se puede mutar.

✨ Estático ⇒ Es un Array que no puede ser Mutado.

A un Array dinámico se le dan slots de más por si acaso muta. A los estáticos se le dan los justos.

Si un Array necesita ser mutado de más, pues se borran los datos y se vuelven a guardar en un nuevo espacio.

Un array, es un tipo de dato estructurado que permite almacenar un conjunto de datos homogeneo, es decir, todos ellos del mismo tipo y relacionados.

Un array es una manera de poder guardar datos del mismo tipo o clase (Enteros, carácteres, booleanos, etc.).
La numeración de estos elementos dentro del array comienza en 0 (primer elemento del array) y finaliza en n-1 (último elemento del array) donde n es el tamaño completo de dicho array.

  • arrays
    • los arrays estaticos desde el principio tiene definido su numero de slot disponibles, y ya este valor no se puede modificar
    • los arrays dinamicos trabajan siempre con duplicando la cantidad de slots que se le requiere, por ejemplo si pides un arrays de 3 slops el mecanismo de arrays dinamicos va a proveer 6 slots para tener disponibles por si acaso tienda a crecer la cantidad de datos, por consiguiente este tipo de arrays si se pueden modificar. (javascript usa arrays dinamicos)

Resumen:
Son una colección de información también conocidas como listas
En los arreglos o listas los datos son guardados en secuencia y se genera un índice para cada dato guardado.
Los arreglos poseen métodos para operar con ellos:

  • Push ⇒ Agregar un elemento al final del array
  • Pop ⇒ Borra el último elemento
  • Unshift ⇒ Agrega un elemento al inicio del array
  • Shift ⇒ Borra el primer elemento
  • Splice ⇒ Agrega un elemento en una parte del array

Arreglos estáticos vs dinámicos

  • JavaScript por defecto trabaja con arreglos dinámicos. No decidimos que tan largo será el arreglo. En JavaScript puedes cambiar el tamaño del array en todo momento.
  • Si necesitas otras la computadora borra, clona y te devuelva 12 slots separados.
  • En otros lenguajes como C, nosotros al declarar una lista indicamos cuantos elementos va a tener. Esto se hace para a la hora de guardar en memoria la computadora sepa cuanto va a asignarle. Esto ya no se puede modificar.
  • Si nosotros queremos crecerlos debemos borrarla, clonarla y agregarle los slots.


.

ya me emocione de construir un arreglo de esta forma!!!, nos vemos a la sig clase

ARRAYS
Es una colección de información. Que se representa de 0 a n cantidad de información y el valors es la información que queremos guardar, generando un índice consecutivo. Se les llama Listas en Python. Tienen métodos para poder manipularlos: agregar, buscar o eliminar elementos. Entendiendo cómo se guarda la información entenderemos podemos ver que esto se puede convertir en un problema, pues depende de cómo se agregue, se va a usar ciertas operaciones.
·

Existen dos formas de Arrays. JavaScript utiliza los dinámicos por default. Porque nosotros no definimos el largo de la lista. Pues si se llega generar un Array estático, no podrá mutar en el tiempo, no podrá cambiar. Por el contrario, un Array dinámico va a designar dinamicamente en lo que vaya necesitando.

·

  • Un Array Estático que define solo 3 números a guardar. En este caso asigna en memoria la cantidad de slots que necesita para guardar la información y recuerda el address en la memoria para cuando se requiera. Por lo que si quisiéramos obtener el valor de cualquiera de los tres índices, para el 4 recordará que comienza en el 2 de la tabla. El 8 va a representar el 10 en la tabla y el 5 a partir del 18. Si quisieramos mutar este array estático, lo que realmente estaríamos haciendo es borrar toda la información, clonarla en otro espacio y agregar los slots extras.
  • Un Array Dinámico, que es como también funciona JavaScript, lo que realizará es la computadora es decirle a la memoria ‘Oye, tengo 3 elementos para guardar, pero necesito 6 slots disponibles porque puede ser que esto crezca’. Por lo que se duplicará la cantidad que necesita. Si llegaramos a crear un array de 6 slots buscará 12 slots. Pero asumiendo que se entregue 7 datos, lo que hará la memoria es buscar aleatoriamente en dónde hay 6 slots libres para copiar la información inicial, pero buscará los 12 slots para almacenar los 7 datos entregados, y así dinámicamente marcará los 12 slots y guardará la información, liberando los antiguos 6 slots que inicialmente tenía.

Los arrays son una colección de información, en otros lenguajes de programación se los llama listas

  • Cada dato tiene un indice (index)

Existen métodos nativos para modificar estos arrays:

  • push → Agregar un elemento al final del array
  • pop → Borrar el último elemento
  • unshift → Agregar un elemento al inicio del array
  • splice → Agregar un elemento en una parte específica del array

Hay 2 tipos de arrays: Estáticos y Dinámicos.

  • Por default Js maneja los arrays dinámicos
<h4>Estáticos</h4>
  • Se reservan los slots declarados en un inicio solamente
  • Si se quiere agregar datos lo que hace la computadora es copiar todo el array y ubicarlo en otro espacio de memoria sumando lo elementos deseados
<h4>Dinámicos</h4>
  • Genera el doble de slots cuando se lo crea
    - Si se supera este espacio reservado la computadora copia el array a otro espacio, nuevamente con el doble del nuevo espacio(el doble que el inicial)

Un arreglo es una estructura de datos lineal, que consiste en una colección de elementos con tipos de datos similares, cada uno identificado con un índice o clave. El tamaño de un arreglo (en el caso de los arreglos estáticos) debe de ser especificado en el momento de su inicialización. Los elementos son organizados de manera secuencial, uno después del otro dentro de un solo bloque de memoria.

Características:

-Acceso: Soporta un acceso aleatorio eficiente, lo que significa que sus elementos pueden ser accesados directamente a traves de su indice.

-Insercion: Si la insercion esta localizada al principio o en medio del arreglo, todos los elementos posicionados a la derecha se mueven un indice hacia adelante.

-Eliminacion: Si el elemento eliminado esta localizado al principio del arreglo o en medio, todos los elementos posicionados posteriormente se moveran un indice hacia la izquierda para evitar dejar espacios en blanco en la memoria.

-Busquedas: Los arreglos deben de ser revisados de manera secuencial, hasta que un match sea encontrado.

Los Arrays
los arrays son estructuras en los cuales se guardan objetos junto a un índice, tambipen pueden ser llamados listas.
los arrays como toda clase tambien tienen métodos que pueden ejecutarse de la forma Array.metodo(), estos son:

  • push agrega un elemnento al final del array
  • pop borra el ultimo elemento del array
  • unshift Agrega un elemento al incio del array
  • shift borra el primer elemento del array
  • splice agrega un elemento en una parte del array
    **
    Arays Dinámicos vs Estáticos**
    Una de las principales diferencias entre los arrays dinamicos y los estaticos es que los arrays dinamicos no se
    incializan con un tamaño establecido, mientra que los arrays estáticos si, JavaScript maneja por default los arrays
    dinpamicos, en otros lenguajes como por ejemplo C o C# se manejan por defecto los arrays estáticos declarando su tamaño
    al pricncipio

El profesor dijo que se parece a las listas en otros lenguajes como python, pero según tengo entendido las listas funcionan con un enlace, así puede apuntar a cualquier espacio en memoria sin tener la necesidad de ser consecutivos como lo es un array.
Un array sería mejor para la lectura ya que se conoce la posición exacta por el índice que tiene pero para escritura sería mejor una lista ya que no requiere mover todo ese espacio usado en memoria.

¿Alguien podría explicar más a profundidad este detalle?

pueden ser dinamicos o estaticos, en el primero, cuando crece todo el contenido es movido a una nueva locacion de memoria con suficiente espacio adyacente para almacenar el contenido viejo junto con el nuevo y la anterior locacion es liberada mientras los estaticos reservan el espacio desde el inicio y no cambia

Como un ninio aprendiendo ha hablar hahahah asi me siento

Los arreglos son una estructura de datos que nos sirve para guardar información de manera organizada. Como funcionan se le asigna indices númericos a los datos que dentro de este y un nombre general que relacionan la colección completa, por lo que para acceder a un dato hay que poner el nombre general y su indice entre corchetes. Ejemplo:
const fulano = [0,1,…]
fulano[0] // = 0

Tipos de array: los dinámicos y los estáticos en javascript los arrays por default son dinamicos , en otros lenguajes de programación como C, C#, C++, etc… existen lso arreglos estáticos los cuales son inmutables lo que quieres decir que el numero de datos especificados que estos tendran será el mismo numero de datos que tendran en todo el programa.

En la proxima clase trabajaremos con clases en JS y probablemente con otros temas más avanzados dentro del Lenguaje espero que hayas tomado todos los cursos específicados al principio de este y si aún así sientes problemas toma: curso profesional de javascript

Me queda clara la diferencia de que a los arrays estáticos podemos definir la longitud cuando los inicializamos, pero me confunde cuando habla de la mutación.
Supongo que quiere decir que no podemos agregar/remover ítems al tener una longitud fija, pero después en el minuto 4:55 dice que si es posible hacer esto y acá me confunde porque estos serian los arrays dinámicos.