惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
V
Visual Studio Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
Vercel News
Vercel News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
D
DataBreaches.Net
美团技术团队
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
GbyAI
GbyAI
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
The Cloudflare Blog
宝玉的分享
宝玉的分享
V
V2EX
Microsoft Azure Blog
Microsoft Azure Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Map and Set in JavaScript
Anoop Rajori · 2026-04-28 · via DEV Community
Cover image for Map and Set in JavaScript

Anoop Rajoriya

Javascript comes from a long days where we manage everything with just objects and arrays, in ES6 a map and set data structures are introduced which provide more specialized ways to handle data collections.

Here are break down of how they work and why they matters:

Content List

What Map is

A Map is a collection of keyed data items, very similar to object. The most basic differences is map allow keys of any types including functions, objects, and primitives.

In a Map a data items stored in a [key, value] pairs, and it remeber the original insertion order of keys.

Key Features of Map

  • You can use object as a keys which is impossible in a standard objects (which would stringify it like "[object object]").
  • In map you can get the number of items using .size.
  • Map are the iterable which means you can directly loop over them without extra step.

Common Methods of Map

  • map.set(key, value): store the value by key.
  • map.get(key): return the value by key.
  • map.has(key): return true if the key exists.
  • map.delete(key): remove the element by the key.
const apiCache = new Map();

async function fetchData(url) {
  // Check if we already have the data in our 'Map'
  if (apiCache.has(url)) {
    console.log("Returning cached data for:", url);
    return apiCache.get(url);
  }

  // If not in cache, fetch it
  const response = await fetch(url);
  const data = await response.json();

  // Save the result in the Map for next time
  apiCache.set(url, data);
  return data;
}

Enter fullscreen mode Exit fullscreen mode

What Set is

A Set is a special type of collection: collection of values (wihout key), where each value may occur only once.

If you try to add duplicates values to a set, it simply ignore your request. This makes it ultimate tool for ensure uniqueness in your data.

Key Features of Set

  • It automatically filter out the duplicates values.
  • just like a map it also maintain insertion order.
  • checking a specific values exist in a set is significantly faster then searching in array.

Common Methods of Set

  • set.add(value): add a value and returns the set itself.
  • set.delete(value): remove the value.
  • set.has(value): return true if value exist.
  • set.clear(): removes everything from set.
// A list of tags entered by a user with duplicates
const rawTags = ["javascript", "webdev", "javascript", "react", "webdev"];

// Convert to a Set to remove duplicates instantly
const uniqueTags = new Set(rawTags);

// Convert back to an array to use it elsewhere
const cleanTagList = [...uniqueTags];
// Result: ['javascript', 'webdev', 'react']

Enter fullscreen mode Exit fullscreen mode

Difference between Map and Object

While they looks similar but they server different masters.

  • Key Types: in object you can only use strings or symbols types but map allow to use any data types like function, object, and primitives.

  • Order: object not strictly gurantee is they maintaing insertion order but map are strictly maintain insertion order.

  • Size: getting size of object need manual code but map has a builtin property .size.

  • Performance: optimized for small static records, but map provide better performance for frequent addtion and removals.

  • Iteration: map required to use Object.keys() or for...in loops but map are directly iterable with for...of loop.

Difference between Set and Array

If you are wondering why we should not use array for everything, here is how they stack up:

  • Duplicats: array allowd to add duplicates value but set ignore you duplicate values.

  • Access: can use index in array but in set you don't have access, for it you need to use iterators or .has().

  • Searching: in array you can use includes() or indexOf() methods but it has O(n) time complexity which is slower for large dataset, but with has() in set is much faster it provide O(1) constant time complexity.

  • Use Cases: array used to store ordered list where duplicates are allowed but sets used for collection where you need unique items.

When to use Map and Set

Knowing the syntax is one thing, but knowing when to reach for them is what makes you an expert.

Use Map When

  • The key are not strings: if you need to associate data with DOM element or functions.

  • You need to preserve order: when the sequance of entries matter for you ui.

  • Frequent updates: maps are more performent than object when you are constantly adding or removing key valus pairs.

Use Set When

  • You need a unique list: for examples when you need to maintain a user ID's or tags on a blogs posts.

  • High performanc searching: if you have a massive list and you need to constancly check "is this item in here" the set will crush an array in term of speed.

  • Data de-duplication: the easiest way to remove duplicates from array is use set const uniqu = = [... new Set(myArray)];.

Summary

JavaScript Maps are ordered key-value collections allowing any key type, offering more flexibility than Objects. Sets store unique values with high-performance existence checks, unlike Arrays. Use Map for complex keys or ordered data, and reach for Set to eliminate duplicates and ensure efficient membership testing in large datasets.