Mapas vs Objetos en JavaScript

JavaScript | Mapas vs Objetos : En este tutorial, vamos a aprender acerca de los mapas y objetos en JavaScript y cuáles son las diferencias entre los mapas y objetos?

objetos JavaScript vs Mapas

Los objetos son class popular en JavaScript así que no es un término que está escuchando super primera vez, incluso si usted es un principiante JS desarrollador. Objetos, en general, son una estructura de datos muy común que se utiliza muy a menudo a diferencia de los mapas. Mapas se usan rara vez, se podría pensar, sin embargo, muy al contrario de estos mapas son aún más popular cuando se trata de la creación de aplicaciones. En este artículo, hablaremos brevemente sobre los mapas, lo que son, cómo y dónde se utilizan? a continuación, vamos a ver los mapas en detalle en JavaScript y luego for los comparamos con los objetos, que serán nuestro objetivo finally ya que ambos son muy similares.

Vamos a entender primero lo que los mapas son, en general. El mapa es una estructura de datos main que los pares de tiendas de valores clave de cualquier tipo en el que cada clave es único. ejemplo, supongamos que tenemos una lista de los estudiantes y sus números de rollo a partir de 1 hasta 50. Podemos almacenar estos datos en un mapa, donde nuestras llaves serán los números de rollo y los nombres de los estudiantes como sus valores correspondientes.

    Key              Value
1 ----> Gengi
2 ----> Harry
3 ----> Sam
4 ----> Jake
5 ----> Fuzzy
And so on,

Se podría decir por qué no almacenar estos datos en una matriz simple y el índice podría actuar como ningún rollo? Es cierto que podemos. Los mapas son muy similares a las matrices en el sentido de que nuestras llaves se asignan a un determinado valor. Sin embargo, digamos que ahora queremos asignar una identificación de estudiante con un nombre del estudiante,

    Key                  Value
stud_19_1 ----> Gengi
stud_18_7 ----> Harry
stud_19_2 ----> Sam
stud_19_11 ----> Jake
stud_18_3 ----> Fuzzy

identificación del estudiante representa, por ejemplo el número de rollo de un estudiante junto con el lote del estudiante. Esta información no puede ser interpretado como un índice desde las matrices siempre tendrán un índice numérico. Aquí, podemos utilizar los mapas para almacenar estos datos como clave no es un entero o un número, sino una alfanumérico o una cadena.

Supongamos ahora que queremos almacenar la edad y los nombres de los estudiantes y asignar el nombre del estudiante para su edad. Podemos almacenar la edad como la clave y el nombre como el valor. Sin embargo, un gran número de estudiantes tendrá la misma edad. Esta es la restricción en los mapas que distingue notablemente de otras estructuras de datos que los mapas sólo pueden contener claves únicas. Si tenemos Harry y Sam tanto tener la edad de 14 , podemos cualquiera de las tiendas 14 —> Harry o 14 —-> Sam, no tanto . Se podría decir que podemos tomar los nombres clave, pero, de nuevo, no puede haber dos estudiantes con el mismo nombre que tiene la misma o de diferente edad.

Así mapas se utilizan donde estamos seguros de que tenemos que almacenar pares de valores clave y cada clave es única. Mapas se construyen en una forma de realizar las operaciones de búsqueda más rápido, ya que ocupan una gran cantidad de espacio para lograrlo. Es por eso que también se conocen como HashMaps. Un uso importante abstract sería los contactos de su teléfono inteligente. La razón por la cual puede buscar rápidamente For un contacto en la lista es que es probable que estén implementados como un HashMap con el nombre como la clave y el valor como su número de teléfono. Usted puede tener una matriz de valores de una clave también, pero el principio fundamental es que no se puede guardar una diferente o el mismo número con un nombre que ya existe en la lista de contactos. Una solución sería que esto sería una cadena hash que consiste en el nombre del contacto y la marca de tiempo (el momento en que se creó ese contacto) de esa manera se puede almacenar nombres duplicados y todavía llevar a cabo operaciones de búsqueda case rápido!

movimiento Vamos a objetos ahora. Sabemos todo en JS es un objeto que pertenece a la for objeto. Así son los mapas. Ahí está la primera diferencia: Los mapas son una instancia de objetos embargo viceversa, no es cierto .

const myMap = new Map([
[1, 'Gengi'],
[2, 'Fuzzy']
]);
console.log(myMap instanceof Object);

salida

 true

Ya que estamos en él, esto es cómo creamos un nuevo mapa en JS usando la nueva palabra clave seguido del nombre de estructura de datos, al igual que nosotros creamos objetos utilizando el nueva palabra clave y especificar los pares de valores clave dentro del método.

const myObj = new Object();
console.log(myObj instanceof Map);

salida

false

Una gran diferencia entre los dos (ahora toda nuestra discusión sería específica a JS) es la forma en que los creamos? Los mapas son bastante nuevo y sólo pueden ser creadas usando la nueva palabra clave seguida por el método constructor de mapa. Sin embargo, se sabe que los objetos se pueden crear en un número de maneras.

const obj1 = {
rollno: 23,
name: 'John'
}
undefined
const obj2 = new Object({
rollno: 46,
name: 'Chris'
})
const obj3 = Object.create(null);
console.log(obj1);
console.log(obj2);
console.log(obj3);

salida

{rollno: 23, name: "John"}
{rollno: 46, name: "Chris"}
{}

La sintaxis en el mapa es más general y objetos WRT simple cuando se trata de acceder a los elementos y comprobando si es que existen dentro de la estructura de datos,

myMap.get(1);
obj1["name"];

salida

"Gengi"
"John"

myMap.has(1);
myMap.has(46);

salida

true
false

en los objetos esto se convierte en un poco más tedioso,

isExist='name' in obj1;
isExist='age' in obj1;

salida

true
false

Para añadir elementos en un mapa,

myMap.set(46, 'John');
console.log(myMap);

salida

Map(3) {1 => "Gengi", 2 => "Fuzzy", 46 => "John"}

Ambos mapas y objetos de una manera similar realizan la operación de inserción en O (1) tiempo

.

delete obj2.rollno;
myMap.delete(46);
console.log(obj2);
console.log(myMap);

salida

{name: "Chris"}
Map(2) {1 => "Gengi", 2 => "Fuzzy"}

eliminación de un solo elemento es bastante similar tanto con la realización en O (1) tiempo , sin embargo, para eliminar todos los elementos de un objeto que va a tener que atravesar la objeto y borrar todos los elementos de uno en uno, mientras que nosotros directamente, puede hacerlo utilizando el claro) método (en el mapa,

myMap.clear();
console.log(myMap);

salida

Map(0) {}

Conseguir el tamaño también es relativamente más fácil en los mapas.

console.log(myMap.size);
console.log(Object.keys(obj1).length);

salida

0
2

Se podría pensar que los mapas tienen una sintaxis más simple ¿por qué no los utilizan en todas partes? Sin embargo, los objetos son más populares y tienen una referencia directa con JSON. Además de almacenar los elementos duplicados es muy útil cuando se utiliza un objeto. Así que realmente depende de lo que su uso super class la estructura de datos es, ambos pueden hacer un muy buen trabajo se usa apropiadamente!


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *