Skip to content

Commit 8f43add

Browse files
author
Benjamin De Cock
committed
Objects as Maps
1 parent ae263d4 commit 8f43add

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

README.md

+26
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,32 @@ for (var prop in obj) {
781781
Object.keys(obj).forEach(prop => console.log(prop));
782782
```
783783

784+
### Objects as Maps
785+
786+
While objects have legitimate use cases, maps are usually a better, more powerful choice. When in
787+
doubt, use a `Map`.
788+
789+
```javascript
790+
// bad
791+
const me = {
792+
name: "Ben",
793+
age: 30
794+
};
795+
var meSize = Object.keys(me).length;
796+
meSize; // => 2
797+
me.country = "Belgium";
798+
meSize++;
799+
meSize; // => 3
800+
801+
// good
802+
const me = Map();
803+
me.set("name", "Ben");
804+
me.set("age", 30);
805+
me.size; // => 2
806+
me.set("country", "Belgium");
807+
me.size; // => 3
808+
```
809+
784810
### Curry
785811

786812
Currying might have its place in other languages, but avoid it in JavaScript. It makes your code harder to read by introducing a foreign paradigm while the appropriate use cases are extremely unusual.

0 commit comments

Comments
 (0)