<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://attacomsian.com/feed.xml" rel="self" type="application/atom+xml"/><link href="https://attacomsian.com/" rel="alternate" type="text/html"/><updated>2026-04-23T21:55:43+00:00</updated><id>https://attacomsian.com/feed.xml</id><title type="html">Atta</title><subtitle>Founder and software engineer building apps with AI, startup tools, and internet business platforms. Explore Depost AI, StartupBase, AcquireBase, and the blog.</subtitle><entry><title type="html">Introducing StartupBase 2 🚀</title><link href="https://attacomsian.com/blog/startupbase-2" rel="alternate" type="text/html" title="Introducing StartupBase 2 🚀"/><published>2026-04-20T19:00:00+00:00</published><updated>2026-04-20T19:00:00+00:00</updated><id>https://attacomsian.com/blog/startupbase-2</id><content type="html" xml:base="https://attacomsian.com/blog/startupbase-2"><![CDATA[<p>StartupBase 2 is a major update to a product I first launched in 2017.</p> <p>The original version proved the demand was real. Nearly <strong>10,000 listings</strong> were created, <strong>13,500+ users</strong> joined, and StartupBase sent <strong>thousands of clicks</strong> to products looking for visibility.</p> <p>But the platform needed to evolve.</p> <p>Product pages had to be stronger. Discovery needed more structure. Launches needed to last beyond a one-day spike. Founders needed a faster way to submit products and get reviewed.</p> <p>So I rebuilt it properly.</p> <h2 id="what-changed">What changed?</h2> <p>StartupBase 2 is not just a visual refresh. It is a product update focused on launches, discovery, and long-term visibility.</p> <ul> <li>Better product pages with richer context, media, launch history, and team details.</li> <li>More visibility through daily launches, weekly rankings, and monthly rankings.</li> <li>Cleaner discovery through topics and curated collections.</li> <li>An AI Launch Assistant that helps founders create and submit listings faster.</li> <li>Reviews and comments for more community feedback.</li> <li>A StartupBase blog for launch strategy, founder stories, product updates, and growth ideas.</li> <li>More ways to sign in with Google, LinkedIn, and X.</li> </ul> <h2 id="why-it-matters">Why it matters?</h2> <p>A product launch should not disappear after one day.</p> <p>Good products need more chances to be seen, understood, and revisited after launch day.</p> <p>That is the problem StartupBase 2 is trying to solve: make launches more useful for founders, and make discovery more useful for people looking for what is new.</p> <p>Read the full launch story: <a href="https://startupbase.io/blog/startupbase-2">Introducing StartupBase 2</a></p>]]></content><author><name></name></author><category term="Product Launch"/><summary type="html"><![CDATA[A concise founder launch story about rebuilding StartupBase with better product pages, launch visibility, discovery, and AI-assisted submissions.]]></summary></entry><entry><title type="html">Get the length of a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-get-length" rel="alternate" type="text/html" title="Get the length of a Map in JavaScript"/><published>2022-12-10T22:38:42+00:00</published><updated>2023-06-16T01:32:47+00:00</updated><id>https://attacomsian.com/blog/javascript-map-get-length</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-get-length"><![CDATA[<p>The <code class="language-plaintext highlighter-rouge">size</code> property can be used to determine the length of a <code class="language-plaintext highlighter-rouge">Map</code> object. It returns the number of elements present in the <code class="language-plaintext highlighter-rouge">Map</code>.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">size</span><span class="p">)</span> <span class="c1">// 0</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Atta</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">34</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">size</span><span class="p">)</span> <span class="c1">// 2</span>
</code></pre></div></div> <p>The <code class="language-plaintext highlighter-rouge">size</code> property provides an integer value representing the number of entries in the <code class="language-plaintext highlighter-rouge">Map</code> object.</p> <p>Unlike the <code class="language-plaintext highlighter-rouge">length</code> property of an array, which can be found <a href="https://attacomsian.com/blog/javascript-arrays#the-length-property">here</a>, the <code class="language-plaintext highlighter-rouge">size</code> property of a map is read-only and cannot be modified:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Atta</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">34</span><span class="p">]</span>
<span class="p">])</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">size</span><span class="p">)</span> <span class="c1">// 2</span>

<span class="nx">map</span><span class="p">.</span><span class="nx">size</span> <span class="o">=</span> <span class="mi">6</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">size</span><span class="p">)</span> <span class="c1">// 2 --&gt; Remains the same</span>
</code></pre></div></div> <p>In contrast, the <code class="language-plaintext highlighter-rouge">length</code> property of an array is writable and can be assigned a new value to increase or decrease the size of the array:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">numbers</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>

<span class="c1">// Truncate to a 3-element array</span>
<span class="nx">numbers</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">3</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">numbers</span><span class="p">)</span>
<span class="c1">// [1, 2, 3]</span>

<span class="c1">// Increase the size to 5</span>
<span class="nx">numbers</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="mi">5</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">numbers</span><span class="p">);</span>
<span class="c1">// [1, 2, 3, &lt;2 empty items&gt;]</span>
</code></pre></div></div> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the size property to get the number of elements in a Map object in JavaScript.]]></summary></entry><entry><title type="html">Delete an element from a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-delete-element" rel="alternate" type="text/html" title="Delete an element from a Map in JavaScript"/><published>2022-12-10T22:19:53+00:00</published><updated>2023-06-07T03:58:29+00:00</updated><id>https://attacomsian.com/blog/javascript-map-delete-element</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-delete-element"><![CDATA[<p>The <code class="language-plaintext highlighter-rouge">delete()</code> method can be utilized to remove an element from a <code class="language-plaintext highlighter-rouge">Map</code> object. This method takes the key name of the element as a parameter. It returns <code class="language-plaintext highlighter-rouge">true</code> if the element was present in the <code class="language-plaintext highlighter-rouge">Map</code> object and successfully removed, or <code class="language-plaintext highlighter-rouge">false</code> if the element does not exist.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">United States</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="c1">// Map(3) {</span>
<span class="c1">//   'name' =&gt; 'Alex Hales',</span>
<span class="c1">//   'age' =&gt; 27,</span>
<span class="c1">//   'country' =&gt; 'United States'</span>
<span class="c1">// }</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="k">delete</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// true</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="k">delete</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// false (already removed)</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="k">delete</span><span class="p">(</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// false (not found)</span>
</code></pre></div></div> <p>To delete all elements in a <code class="language-plaintext highlighter-rouge">Map</code> object, the <code class="language-plaintext highlighter-rouge">clear()</code> method can be used:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">United States</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">clear</span><span class="p">()</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nx">size</span><span class="p">)</span> <span class="c1">// 0</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span> <span class="c1">// Map(0) {}</span>
</code></pre></div></div> <p>To gain a deeper understanding of the <code class="language-plaintext highlighter-rouge">Map</code> object and how to create collections of key-value pairs in JavaScript, refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the delete() method to remove an element from a Map in JavaScript.]]></summary></entry><entry><title type="html">Get the first element of a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-get-first-element" rel="alternate" type="text/html" title="Get the first element of a Map in JavaScript"/><published>2022-12-10T13:56:41+00:00</published><updated>2023-06-07T04:04:41+00:00</updated><id>https://attacomsian.com/blog/javascript-map-get-first-element</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-get-first-element"><![CDATA[<p>To retrieve the first element of a <code class="language-plaintext highlighter-rouge">Map</code> object, there are multiple approaches you can take.</p> <ol> <li>Using the <code class="language-plaintext highlighter-rouge">entries()</code> method and <code class="language-plaintext highlighter-rouge">next()</code>:</li> </ol> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">United States</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="nx">first</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nf">entries</span><span class="p">().</span><span class="nf">next</span><span class="p">().</span><span class="nx">value</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">first</span><span class="p">)</span>
<span class="c1">// ['name', 'Alex Hales']</span>
</code></pre></div></div> <p>The <code class="language-plaintext highlighter-rouge">entries()</code> method returns an iterator object with key-value pairs. By calling <code class="language-plaintext highlighter-rouge">next()</code> once, you can retrieve the first element from the iterator.</p> <ol> <li>Converting to an array and accessing the first element:</li> </ol> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">United States</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="nx">first</span> <span class="o">=</span> <span class="nb">Array</span><span class="p">.</span><span class="k">from</span><span class="p">(</span><span class="nx">map</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="c1">// or [...map][0]</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">first</span><span class="p">)</span>
<span class="c1">// ['name', 'Alex Hales']</span>
</code></pre></div></div> <p>By using <a href="https://attacomsian.com/blog/javascript-array-from"><code class="language-plaintext highlighter-rouge">Array.from(map)</code></a> or the spread operator (<code class="language-plaintext highlighter-rouge">...map</code>), you can convert the <code class="language-plaintext highlighter-rouge">Map</code> object into an array. Then, accessing the element at index <code class="language-plaintext highlighter-rouge">0</code> will give you the first key-value pair.</p> <ol> <li>Using array destructuring with <code class="language-plaintext highlighter-rouge">keys()</code> or <code class="language-plaintext highlighter-rouge">values()</code>:</li> </ol> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">United States</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="p">[</span><span class="nx">firstKey</span><span class="p">]</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nf">keys</span><span class="p">()</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">firstKey</span><span class="p">);</span> <span class="c1">// 'name'</span>

<span class="kd">const</span> <span class="p">[</span><span class="nx">firstVal</span><span class="p">]</span> <span class="o">=</span> <span class="nx">map</span><span class="p">.</span><span class="nf">values</span><span class="p">()</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">firstVal</span><span class="p">);</span> <span class="c1">// 'Alex Hales'</span>
</code></pre></div></div> <p>You can utilize <a href="https://attacomsian.com/blog/javascript-object-array-destructuring#array-destructuring">array destructuring</a> to extract the first key or value by calling <code class="language-plaintext highlighter-rouge">keys()</code> or <code class="language-plaintext highlighter-rouge">values()</code> on the <code class="language-plaintext highlighter-rouge">Map</code> object.</p> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and working with key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the entries() method to get the first element in a Map using JavaScript.]]></summary></entry><entry><title type="html">Get an element from a Map using JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-get-element" rel="alternate" type="text/html" title="Get an element from a Map using JavaScript"/><published>2022-12-10T13:20:40+00:00</published><updated>2023-06-07T04:06:46+00:00</updated><id>https://attacomsian.com/blog/javascript-map-get-element</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-get-element"><![CDATA[<p>The <code class="language-plaintext highlighter-rouge">get()</code> method is used to retrieve an element from a <code class="language-plaintext highlighter-rouge">Map</code> object in JavaScript. This method accepts the key of the element as an argument and returns the associated value. If the key is not found in the <code class="language-plaintext highlighter-rouge">Map</code>, it returns <code class="language-plaintext highlighter-rouge">undefined</code>.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">29</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">UX Designer</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// John Doe</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// 29</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// UX Designer</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">address</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// undefined</span>
</code></pre></div></div> <p>If the value associated with the specified key is an object, the <code class="language-plaintext highlighter-rouge">get()</code> method returns a reference to that object. Any modifications made to the object will be reflected inside the <code class="language-plaintext highlighter-rouge">Map</code> object as well:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">product</span> <span class="o">=</span> <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Milk</span><span class="dl">'</span><span class="p">,</span> <span class="na">qty</span><span class="p">:</span> <span class="mi">2</span> <span class="p">}</span>
<span class="kd">const</span> <span class="nx">prices</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.99</span><span class="p">]</span>

<span class="kd">const</span> <span class="nx">items</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>
<span class="nx">items</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">product</span><span class="dl">'</span><span class="p">,</span> <span class="nx">product</span><span class="p">)</span>
<span class="nx">items</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">prices</span><span class="dl">'</span><span class="p">,</span> <span class="nx">prices</span><span class="p">)</span>

<span class="nx">items</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">product</span><span class="dl">'</span><span class="p">).</span><span class="nx">qty</span> <span class="o">=</span> <span class="mi">100</span>
<span class="nx">items</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">prices</span><span class="dl">'</span><span class="p">).</span><span class="nf">push</span><span class="p">(</span><span class="mf">4.55</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">product</span><span class="p">)</span>
<span class="c1">// { name: 'Milk', qty: 100 }</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">prices</span><span class="p">)</span>
<span class="c1">// [ 2.99, 4.55 ]</span>
</code></pre></div></div> <p>To delve deeper into the <code class="language-plaintext highlighter-rouge">Map</code> object and discover more about creating collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the get() method to get an element from a Map object in JavaScript.]]></summary></entry><entry><title type="html">Update an element in a Map using JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-update-element" rel="alternate" type="text/html" title="Update an element in a Map using JavaScript"/><published>2022-12-04T10:56:58+00:00</published><updated>2023-06-07T04:10:31+00:00</updated><id>https://attacomsian.com/blog/javascript-map-update-element</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-update-element"><![CDATA[<p>The <code class="language-plaintext highlighter-rouge">set()</code> method is used to update or add an element’s value in a <code class="language-plaintext highlighter-rouge">Map</code> object. It takes two parameters: the key and the new value. If the <code class="language-plaintext highlighter-rouge">Map</code> object already contains the key, the <code class="language-plaintext highlighter-rouge">set()</code> method updates its value. Otherwise, it adds a new key-value pair to the <code class="language-plaintext highlighter-rouge">Map</code>.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">scores</span><span class="dl">'</span><span class="p">,</span> <span class="p">[</span><span class="mi">75</span><span class="p">,</span> <span class="mi">87</span><span class="p">]],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">bio</span><span class="dl">'</span><span class="p">,</span> <span class="p">{</span> <span class="na">age</span><span class="p">:</span> <span class="mi">27</span><span class="p">,</span> <span class="na">country</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Pakistan</span><span class="dl">'</span> <span class="p">}]</span>
<span class="p">])</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="c1">// Map(3) {</span>
<span class="c1">//   'name' =&gt; 'Alex',</span>
<span class="c1">//   'scores' =&gt; [75, 87],</span>
<span class="c1">//   'bio' =&gt; { age: 27, country: 'Pakistan' }</span>
<span class="c1">// }</span>

<span class="c1">// Update name (STRING)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// Alex Hales</span>

<span class="c1">// Update scores (ARRAY)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">scores</span><span class="dl">'</span><span class="p">,</span> <span class="p">[...</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">scores</span><span class="dl">'</span><span class="p">),</span> <span class="mi">99</span><span class="p">])</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">scores</span><span class="dl">'</span><span class="p">))</span> <span class="c1">// [75, 87, 99]</span>

<span class="c1">// Update bio (OBJECT)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">bio</span><span class="dl">'</span><span class="p">,</span> <span class="p">{</span> <span class="p">...</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">bio</span><span class="dl">'</span><span class="p">),</span> <span class="na">job</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Engineer</span><span class="dl">'</span> <span class="p">})</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="dl">'</span><span class="s1">bio</span><span class="dl">'</span><span class="p">))</span>
<span class="c1">// { age: 27, country: 'Pakistan', job: 'Engineer' }</span>
</code></pre></div></div> <p>In the above example, the <code class="language-plaintext highlighter-rouge">name</code>, <code class="language-plaintext highlighter-rouge">scores</code>, and <code class="language-plaintext highlighter-rouge">bio</code> elements are updated with new values using the <code class="language-plaintext highlighter-rouge">set()</code> method. The <code class="language-plaintext highlighter-rouge">name</code> is updated with a string value, <code class="language-plaintext highlighter-rouge">scores</code> with an array value by spreading the existing scores and adding a new score of 99, and <code class="language-plaintext highlighter-rouge">bio</code> with an object value by spreading the existing bio object and adding a <code class="language-plaintext highlighter-rouge">job</code> property.</p> <p>You can also use the <code class="language-plaintext highlighter-rouge">set()</code> method to add new elements to a <code class="language-plaintext highlighter-rouge">Map</code> object:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Alex</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">scores</span><span class="dl">'</span><span class="p">,</span> <span class="p">[</span><span class="mi">75</span><span class="p">,</span> <span class="mi">87</span><span class="p">]],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">bio</span><span class="dl">'</span><span class="p">,</span> <span class="p">{</span> <span class="na">age</span><span class="p">:</span> <span class="mi">27</span><span class="p">,</span> <span class="na">country</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Pakistan</span><span class="dl">'</span> <span class="p">}]</span>
<span class="p">])</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">email</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">alex@example.com</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="c1">// Map(4) {</span>
<span class="c1">//   'name' =&gt; 'Alex',</span>
<span class="c1">//   'scores' =&gt; [75, 87],</span>
<span class="c1">//   'bio' =&gt; { age: 27, country: 'Pakistan' },</span>
<span class="c1">//   'email' =&gt; 'alex@example.com'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>In this case, the <code class="language-plaintext highlighter-rouge">email</code> element is added to the <code class="language-plaintext highlighter-rouge">Map</code> object with its corresponding value.</p> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and how to utilize it to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the set() method to update an element in a Map using JavaScript.]]></summary></entry><entry><title type="html">Add an element to a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-map-add-element" rel="alternate" type="text/html" title="Add an element to a Map in JavaScript"/><published>2022-12-04T10:54:36+00:00</published><updated>2023-06-07T04:15:35+00:00</updated><id>https://attacomsian.com/blog/javascript-map-add-element</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-map-add-element"><![CDATA[<p>You can use the <code class="language-plaintext highlighter-rouge">set()</code> method to dynamically add elements to a <code class="language-plaintext highlighter-rouge">Map</code> object in JavaScript. The <code class="language-plaintext highlighter-rouge">set()</code> method adds or updates an element with the given key and value, and it returns the <code class="language-plaintext highlighter-rouge">Map</code> object itself.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Pakistan</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(3) {</span>
<span class="c1">//   'name' =&gt; 'John Doe',</span>
<span class="c1">//   'age' =&gt; 27,</span>
<span class="c1">//   'country' =&gt; 'Pakistan'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>Since the <code class="language-plaintext highlighter-rouge">set()</code> method returns the same <code class="language-plaintext highlighter-rouge">Map</code> object, you can chain multiple <code class="language-plaintext highlighter-rouge">set()</code> calls together to add multiple elements:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">).</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">27</span><span class="p">).</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">country</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Pakistan</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(3) {</span>
<span class="c1">//   'name' =&gt; 'John Doe',</span>
<span class="c1">//   'age' =&gt; 27,</span>
<span class="c1">//   'country' =&gt; 'Pakistan'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>It’s important to note that <code class="language-plaintext highlighter-rouge">Map</code> keys are unique. If you call the <code class="language-plaintext highlighter-rouge">set()</code> method multiple times with the same key, it will update the value associated with that key:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John</span><span class="dl">'</span><span class="p">)</span>
<span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(1) {</span>
<span class="c1">//   'name' =&gt; 'John Doe'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>In the above example, the value for the key <code class="language-plaintext highlighter-rouge">'name'</code> is initially set to <code class="language-plaintext highlighter-rouge">'John'</code>, but it is then updated to <code class="language-plaintext highlighter-rouge">'John Doe'</code> in the second <code class="language-plaintext highlighter-rouge">set()</code> call.</p> <p>The <code class="language-plaintext highlighter-rouge">Map</code> object allows you to store various types of objects as keys or values, including object literals, arrays, and functions:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">menu</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">sandwich</span><span class="p">:</span> <span class="dl">'</span><span class="s1">?</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">cookie</span><span class="p">:</span> <span class="dl">'</span><span class="s1">?</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">popcorn</span><span class="p">:</span> <span class="dl">'</span><span class="s1">?</span><span class="dl">'</span>
<span class="p">}</span>

<span class="kd">const</span> <span class="nx">pizza</span> <span class="o">=</span> <span class="p">()</span> <span class="o">=&gt;</span> <span class="dl">'</span><span class="s1">?</span><span class="dl">'</span>

<span class="kd">const</span> <span class="nx">foods</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">foods</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="nx">menu</span><span class="p">,</span> <span class="mf">5.9</span><span class="p">)</span>
<span class="nx">foods</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="nx">pizza</span><span class="p">,</span> <span class="dl">'</span><span class="s1">What is Pizza?</span><span class="dl">'</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">foods</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="nx">menu</span><span class="p">))</span> <span class="c1">// 5.9</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">foods</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="nx">pizza</span><span class="p">))</span> <span class="c1">// What is Pizza?</span>
</code></pre></div></div> <p>In the above example, an object literal (<code class="language-plaintext highlighter-rouge">menu</code>) and a function (<code class="language-plaintext highlighter-rouge">pizza</code>) are used as keys in the <code class="language-plaintext highlighter-rouge">Map</code> object, and their corresponding values are retrieved using the <code class="language-plaintext highlighter-rouge">get()</code> method.</p> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and how to use it to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the set() method to add elements to a Map in JavaScript.]]></summary></entry><entry><title type="html">Convert a Map to an object in JavaScript</title><link href="https://attacomsian.com/blog/javascript-convert-map-to-object" rel="alternate" type="text/html" title="Convert a Map to an object in JavaScript"/><published>2022-12-04T10:52:08+00:00</published><updated>2023-06-07T04:31:21+00:00</updated><id>https://attacomsian.com/blog/javascript-convert-map-to-object</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-convert-map-to-object"><![CDATA[<p>You can convert a <code class="language-plaintext highlighter-rouge">Map</code> object to an object in JavaScript using the <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> method. The <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> method takes an iterable of key-value pairs and returns a new object.</p> <p>Here’s an example of how you can convert a <code class="language-plaintext highlighter-rouge">Map</code> to an object using <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code>:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Doctor</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nf">fromEntries</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span>
<span class="c1">// { name: 'John Doe', age: 20, job: 'Doctor' }</span>
</code></pre></div></div> <p>In this example, the <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> method is called with the <code class="language-plaintext highlighter-rouge">map</code> object as the argument, which contains key-value pairs. The method converts the <code class="language-plaintext highlighter-rouge">map</code> object to an object literal with the same key-value pairs.</p> <p>The <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> takes an iterable, such as a <code class="language-plaintext highlighter-rouge">Map</code>, and returns an object containing the key-value pairs of the iterable:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">kvPairs</span> <span class="o">=</span> <span class="p">[</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Doctor</span><span class="dl">'</span><span class="p">]</span>
<span class="p">]</span>

<span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nf">fromEntries</span><span class="p">(</span><span class="nx">kvPairs</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span>
<span class="c1">// { name: 'John Doe', age: 20, job: 'Doctor' }</span>
</code></pre></div></div> <p>In this case, the <code class="language-plaintext highlighter-rouge">kvPairs</code> array directly represents the key-value pairs, and <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> converts them into an object.</p> <p>An alternate approach is to use the <code class="language-plaintext highlighter-rouge">Map.forEach()</code> method to iterate over the entries of the <code class="language-plaintext highlighter-rouge">Map</code> object and create a new key on the object for each of them:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Doctor</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="p">{}</span>

<span class="nx">map</span><span class="p">.</span><span class="nf">forEach</span><span class="p">((</span><span class="nx">value</span><span class="p">,</span> <span class="nx">key</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="nx">user</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="o">=</span> <span class="nx">value</span>
<span class="p">})</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span>
<span class="c1">// { name: 'John Doe', age: 20, job: 'Doctor' }</span>
</code></pre></div></div> <p>If you want to convert the object back to a <code class="language-plaintext highlighter-rouge">Map</code> object, you can use the <code class="language-plaintext highlighter-rouge">Object.entries()</code> method to get an array of key-value pairs from the object, and then create a new <code class="language-plaintext highlighter-rouge">Map</code> using the <code class="language-plaintext highlighter-rouge">Map</code> constructor:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">age</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
  <span class="na">job</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Doctor</span><span class="dl">'</span>
<span class="p">}</span>

<span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">(</span><span class="nb">Object</span><span class="p">.</span><span class="nf">entries</span><span class="p">(</span><span class="nx">user</span><span class="p">))</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(3) { 'name' =&gt; 'John Doe', 'age' =&gt; 20, 'job' =&gt; 'Doctor' }</span>
</code></pre></div></div> <p>In this example, <code class="language-plaintext highlighter-rouge">Object.entries(user)</code> returns an array of key-value pairs, which is then used to create a new <code class="language-plaintext highlighter-rouge">Map</code> object.</p> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to use the Object.fromEntries() method to convert a Map to an object in JavaScript.]]></summary></entry><entry><title type="html">Convert an object to a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-convert-object-to-map" rel="alternate" type="text/html" title="Convert an object to a Map in JavaScript"/><published>2022-12-04T10:47:17+00:00</published><updated>2023-06-07T04:42:08+00:00</updated><id>https://attacomsian.com/blog/javascript-convert-object-to-map</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-convert-object-to-map"><![CDATA[<p>To convert an object to a <code class="language-plaintext highlighter-rouge">Map</code> in JavaScript, you can use the <code class="language-plaintext highlighter-rouge">Object.entries()</code> method to get an array of key-value pairs from the object, and then create a new <code class="language-plaintext highlighter-rouge">Map</code> object using the <code class="language-plaintext highlighter-rouge">Map</code> constructor and the obtained array.</p> <p>Here’s an example of how you can convert an object to a <code class="language-plaintext highlighter-rouge">Map</code> using <code class="language-plaintext highlighter-rouge">Object.entries()</code>:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">age</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
  <span class="na">job</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Engineer</span><span class="dl">'</span>
<span class="p">}</span>

<span class="kd">const</span> <span class="nx">kvPairs</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nf">entries</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span>

<span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">(</span><span class="nx">kvPairs</span><span class="p">)</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(3) { 'name' =&gt; 'John Doe', 'age' =&gt; 20, 'job' =&gt; 'Engineer' }</span>
</code></pre></div></div> <p>In this example, <code class="language-plaintext highlighter-rouge">Object.entries(user)</code> returns an array of key-value pairs from the <code class="language-plaintext highlighter-rouge">user</code> object, which is then used to create a new <code class="language-plaintext highlighter-rouge">Map</code> object using the <code class="language-plaintext highlighter-rouge">Map</code> constructor.</p> <p>Alternatively, you can use the <code class="language-plaintext highlighter-rouge">Array.forEach()</code> method to <a href="https://attacomsian.com/blog/javascript-iterate-objects">iterate over the object</a> keys and add each key-value pair to the <code class="language-plaintext highlighter-rouge">Map</code> using the <code class="language-plaintext highlighter-rouge">Map.set()</code> method:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span>
  <span class="na">age</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span>
  <span class="na">job</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Engineer</span><span class="dl">'</span>
<span class="p">}</span>

<span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nb">Object</span><span class="p">.</span><span class="nf">keys</span><span class="p">(</span><span class="nx">user</span><span class="p">).</span><span class="nf">forEach</span><span class="p">(</span><span class="nx">key</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="nx">key</span><span class="p">,</span> <span class="nx">user</span><span class="p">[</span><span class="nx">key</span><span class="p">])</span>
<span class="p">})</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="c1">// Map(3) { 'name' =&gt; 'John Doe', 'age' =&gt; 20, 'job' =&gt; 'Engineer' }</span>
</code></pre></div></div> <p>In this example, <code class="language-plaintext highlighter-rouge">Object.keys(user)</code> returns an array of keys from the <code class="language-plaintext highlighter-rouge">user</code> object. We then iterate over these keys using <code class="language-plaintext highlighter-rouge">forEach()</code> and use the <code class="language-plaintext highlighter-rouge">Map.set()</code> method to add each key-value pair to the <code class="language-plaintext highlighter-rouge">map</code> object.</p> <p>If you want to convert the <code class="language-plaintext highlighter-rouge">Map</code> object back to an object, you can use the <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> method:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">([</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">name</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">age</span><span class="dl">'</span><span class="p">,</span> <span class="mi">20</span><span class="p">],</span>
  <span class="p">[</span><span class="dl">'</span><span class="s1">job</span><span class="dl">'</span><span class="p">,</span> <span class="dl">'</span><span class="s1">Engineer</span><span class="dl">'</span><span class="p">]</span>
<span class="p">])</span>

<span class="kd">const</span> <span class="nx">user</span> <span class="o">=</span> <span class="nb">Object</span><span class="p">.</span><span class="nf">fromEntries</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">user</span><span class="p">)</span>
<span class="c1">// { name: 'John Doe', age: 20, job: 'Engineer' }</span>
</code></pre></div></div> <p>The <code class="language-plaintext highlighter-rouge">Object.fromEntries()</code> method takes an iterable of key-value pairs, such as an array, and returns a new object with the key-value pairs.</p> <p>To learn more about the <code class="language-plaintext highlighter-rouge">Map</code> object and how to create collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to convert an object to a Map object in JavaScript.]]></summary></entry><entry><title type="html">Convert an array of objects to a Map in JavaScript</title><link href="https://attacomsian.com/blog/javascript-convert-array-of-objects-to-map" rel="alternate" type="text/html" title="Convert an array of objects to a Map in JavaScript"/><published>2022-12-04T10:40:36+00:00</published><updated>2023-06-07T04:47:21+00:00</updated><id>https://attacomsian.com/blog/javascript-convert-array-of-objects-to-map</id><content type="html" xml:base="https://attacomsian.com/blog/javascript-convert-array-of-objects-to-map"><![CDATA[<p>To convert an array of objects into a map in JavaScript, you can utilize the <code class="language-plaintext highlighter-rouge">Array.map()</code> method to <a href="https://attacomsian.com/blog/javascript-loops">iterate</a> through the array elements and create an array of key-value pairs. Subsequently, you can pass this array of key-value pairs to the <code class="language-plaintext highlighter-rouge">Map()</code> constructor to <a href="https://attacomsian.com/blog/javascript-create-map-object">create</a> a <code class="language-plaintext highlighter-rouge">Map</code> object.</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">users</span> <span class="o">=</span> <span class="p">[</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Admin</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Manager</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Ali Feroz</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">User</span><span class="dl">'</span> <span class="p">}</span>
<span class="p">]</span>

<span class="kd">const</span> <span class="nx">kvPairs</span> <span class="o">=</span> <span class="nx">users</span><span class="p">.</span><span class="nf">map</span><span class="p">(</span><span class="nx">u</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="nx">u</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">u</span><span class="p">.</span><span class="nx">role</span><span class="p">])</span>

<span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">(</span><span class="nx">kvPairs</span><span class="p">)</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>

<span class="c1">// Map(3) {</span>
<span class="c1">//     'John Doe' =&gt; 'Admin',</span>
<span class="c1">//     'Alex Hales' =&gt; 'Manager',</span>
<span class="c1">//     'Ali Feroz' =&gt; 'User'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>In the above code, a callback function is provided to the <code class="language-plaintext highlighter-rouge">Array.map()</code> method, which is executed for each object in the array. During each iteration, an array is returned containing the key and value for each object, resulting in an array of key-value pairs:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">users</span> <span class="o">=</span> <span class="p">[</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Admin</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Manager</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Ali Feroz</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">User</span><span class="dl">'</span> <span class="p">}</span>
<span class="p">]</span>

<span class="kd">const</span> <span class="nx">kvPairs</span> <span class="o">=</span> <span class="nx">users</span><span class="p">.</span><span class="nf">map</span><span class="p">(</span><span class="nx">u</span> <span class="o">=&gt;</span> <span class="p">[</span><span class="nx">u</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">u</span><span class="p">.</span><span class="nx">role</span><span class="p">])</span>
<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">kvPairs</span><span class="p">)</span>

<span class="c1">// [</span>
<span class="c1">//     [ 'John Doe', 'Admin' ],</span>
<span class="c1">//     [ 'Alex Hales', 'Manager' ],</span>
<span class="c1">//     [ 'Ali Feroz', 'User' ]</span>
<span class="c1">// ]</span>
</code></pre></div></div> <p>Finally, the resulting array is passed to the <code class="language-plaintext highlighter-rouge">Map()</code> constructor to create a new instance of the <code class="language-plaintext highlighter-rouge">Map</code> object.</p> <p>Alternatively, you can use the <code class="language-plaintext highlighter-rouge">Array.forEach()</code> method to convert the array of objects to a map. This approach involves three steps:</p> <ol> <li>Create an empty map object using the <code class="language-plaintext highlighter-rouge">Map()</code> constructor.</li> <li>Use the <code class="language-plaintext highlighter-rouge">forEach()</code> method on the array to iterate through all the objects.</li> <li>During each iteration, utilize the <code class="language-plaintext highlighter-rouge">Map.set()</code> method to add the key-value pair to the map.</li> </ol> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">const</span> <span class="nx">users</span> <span class="o">=</span> <span class="p">[</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">John Doe</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Admin</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Alex Hales</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Manager</span><span class="dl">'</span> <span class="p">},</span>
  <span class="p">{</span> <span class="na">name</span><span class="p">:</span> <span class="dl">'</span><span class="s1">Ali Feroz</span><span class="dl">'</span><span class="p">,</span> <span class="na">role</span><span class="p">:</span> <span class="dl">'</span><span class="s1">User</span><span class="dl">'</span> <span class="p">}</span>
<span class="p">]</span>

<span class="kd">const</span> <span class="nx">map</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Map</span><span class="p">()</span>

<span class="nx">users</span><span class="p">.</span><span class="nf">forEach</span><span class="p">(</span><span class="nx">u</span> <span class="o">=&gt;</span> <span class="p">{</span>
  <span class="nx">map</span><span class="p">.</span><span class="nf">set</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">name</span><span class="p">,</span> <span class="nx">u</span><span class="p">.</span><span class="nx">role</span><span class="p">)</span>
<span class="p">})</span>

<span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="nx">map</span><span class="p">)</span>
<span class="c1">// Map(3) {</span>
<span class="c1">//     'John Doe' =&gt; 'Admin',</span>
<span class="c1">//     'Alex Hales' =&gt; 'Manager',</span>
<span class="c1">//     'Ali Feroz' =&gt; 'User'</span>
<span class="c1">// }</span>
</code></pre></div></div> <p>For further information on the <code class="language-plaintext highlighter-rouge">Map</code> object and its usage for creating collections of key-value pairs in JavaScript, you can refer to <a href="https://attacomsian.com/blog/maps-javascript">this article</a>.</p>]]></content><author><name></name></author><category term="JavaScript"/><summary type="html"><![CDATA[Learn how to convert an array of nested objects to a Map object in JavaScript.]]></summary></entry></feed>