Thursday, April 18, 2024
HomeC#JavaScript Objects vs. Maps | Syncfusion Blogs

JavaScript Objects vs. Maps | Syncfusion Blogs


Objects and Maps are utilized in JavaScript to retailer information as dynamic collections of key-value pairs. Since Maps are inherited from Objects, there are some similarities between the 2 entities, and prototype capabilities of Objects could be utilized in Maps.

Nevertheless, there are some distinctive traits to every of those entities. This text will look at the variations between Maps and Objects, their utilization, and the perfect conditions the place every can be utilized.

What’s a Map?

A Map is an information construction that shops information as distinctive key-value pairs by which the insertion order is retained. It helps to keep away from duplicity.

What’s an Object?

The idea of an Object is similar to that of a Map: it shops information utilizing a key-value pair. Nevertheless, minor variations make Map work higher below particular circumstances, primarily as a result of Objects don’t protect the insertion order of components when storing the info.

Manipulation of Maps and Objects

1. Development

Maps

A Map could be created utilizing the Map constructor in JavaScript.

const map = new Map([[1, "one"], [2, "two"], [3, "three"]]);

We will set the values initially by parsing an array of arrays. The inside arrays comprise a key and a worth as their components. The important thing area in Maps could be of any information sort similar to quantity, array, or object.

Objects

There are various methods to instantiate an Object.

const obj1 = { 1: "one", 2: "two", 3: "three" };

const obj2 = new Object({ 1: "one", 2: "two", 3: "three" });

const obj3 = Object.create(obj1);

Within the instance above, obj1 is created utilizing Object literal syntax whereas the Object constructor is used for obj2. In obj3, we handed an Object that needs to be the newly created Object prototype. The information sort of the important thing area in Object is proscribed to strings and symbols. Consequently, the keys given as numbers within the above code snippet will probably be transformed to strings internally.

2. Merchandise manipulation

Maps: Get, set, and delete factors

In Maps, we have now to make use of the set() methodology to insert values, the get() methodology to entry components, and the delete() methodology to delete components.

const map = new Map();

map.set(1, "one");

console.log(map.get(1)); // output: one

map.delete(1);
console.log(map); // Map(0) {}

The set() methodology requires two parameters to initialize the important thing and worth of a Map factor. Then again, the get() methodology returns the worth of the important thing we cross because the parameter. We will delete a component by passing the important thing to the delete() methodology.

Objects: Dot notation

We will use both dot notation or sq. bracket notation to entry components in an Object.

const obj = {};

obj.a = "one"
obj["b"] = "two"

console.log(obj.a); // output: one
console.log(obj["b"]); //output: two

delete obj.a
delete obj["b"]
console.log(obj); // output: {}

Dot notation is simple, and we are able to entry components straight by their key. Then again, sq. bracket notation needs to be utilized in full when dynamically accessing the factor. Additionally, we are able to use the delete key phrase to delete components from an Object.

3. Learn keys and values

Maps

In Maps, we are able to use the keys() methodology to get the record of keys in a map.

const map = new Map([[1, "one"], [2, "two"]]);

console.log(map.keys()); // output: [Map Iterator] { 1, 2 }
console.log(Array.from(map.keys())); // output: [1, 2]

console.log(map.values()); // output: [Map Iterator] { 'one', 'two' }
console.log(Array.from(map.values())); // output: ['one', 'two']

console.log(map.entries()); // output [Map Iterator] { [1, 'one'], [2, 'two'] }
console.log(Array.from(map.entries())); // output [ [1, 'one'], [2, 'two']  ]

map.keys() returns a Map Iterator with the keys, whereas map.values() returns a Map Iterator with values. Then again, map.entries() can be utilized to return a Map Iterator with key-value pairs. We will convert these Map Iterators to arrays utilizing Array.from().

Objects

To get the keys to an Object, we are able to use Object.keys() and Object.values() to get the values, whereas Object.entries() can be utilized to get the key-value pairs.

const obj = { 1: "one", 2: "two" };

console.log(Object.keys(obj)); // output: ['1', '2']

console.log(Object.values(obj)); // output: ['one', 'two']

console.log(Object.entries(obj)); // output: [ ['1', 'one'], ['2', 'two'] ]

The above capabilities return an array of keys, values, or key-value pairs of the Object we cross because the parameter.

4. Examine if a key exists

Maps

Maps have the has() methodology to examine if a key exists.

console.log(map.has(2)); // output: true or false

Objects

The next strategies can be utilized to examine the existence of a key in an Object.

console.log(2 in obj); // output: true or false
console.log(obj.hasOwnProperty(2)); // output: true or false

5. Get size

Maps

We will get the dimensions or the variety of components of a Map utilizing the dimension property.

console.log(map.dimension); // output: 2

Objects

We will get the dimensions of an Object as proven beneath.

console.log(Object.keys(obj).size); // output: 2

Right here, we received the keys array from the Object and used size to get the variety of components, much like the Object’s dimension.

6. Iteration

Maps

There are a number of methods to iterate over the weather in a Map. The next code instance illustrates iterating utilizing for and forEach loops.

//methodology 1
for (const [ key, value ] of map) {
	console.log(worth);
};
//methodology 2
map.forEach((worth, key) => console.log(worth));

Objects

Much like Maps, Objects can be iterated in some ways. The next code instance illustrates iterating utilizing for and forEach loops.

//methodology 1
for (const [key, value ] of Object.entries(obj)) {
	console.log(worth);
};

//methodology 2
Object.entries(obj).forEach(([ key, value ]) => console.log(worth));

In contrast to in Maps, we’d like helper capabilities to entry key-value pairs in Objects.

When to make use of Maps and Objects

Maps have increased efficiency and require much less code to write down, giving them a bonus over Objects.

The next are some circumstances the place you should use Maps:

  • If you wish to use complicated information varieties as keys.
  • If preserving the insertion order of your keys is required.
  • When performing hashing.

Nevertheless, some circumstances necessitate using an Object. The next are a few of them:

  • Objects are perfect for circumstances the place we’d like a easy construction to carry information and the keys are both strings or symbols.
  • Object is certainly the most suitable choice in eventualities the place completely different logic should be utilized to every property piece.
  • When coping with JSON information, Objects have direct help in JSON, however Maps don’t.

Ultimate ideas

Though Maps carry out higher, all of it comes all the way down to the kind of information getting used and the operation that must be carried out. Use Maps and Objects properly within the acceptable conditions.

I hope you now have understanding of utilizing Objects and Maps in JavaScript.

Thanks for studying!

Syncfusion Important JS 2 is the one suite you’ll ever have to construct an app. It comprises over 65 high-performance, light-weight, modular, and responsive UI elements in a single bundle. Obtain a free trial to guage the controls at the moment.

In case you have any questions or feedback, you may also contact us by way of our help boardshelp portal, or suggestions portal. We’re all the time joyful to help you!

Associated blogs

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments