{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/arraymethods","result":{"data":{"markdownRemark":{"html":"<p>Arrays have many useful methods. </p>\n<ul>\n<li>They are objects that are used to store lists of items.</li>\n<li>Elements inside can be of any data type, each one is accessed by it's index.</li>\n<li>They have a length property that indicates how many items are in the array.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token comment\">//How to create an array</span>\n<span class=\"token keyword\">let</span> learningHowToCode <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"stressed\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"scared\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"overwhelmed\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"tired\"</span><span class=\"token punctuation\">]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<p>A queue is one of the most common uses of an array. In computer science, this means an ordered collection of elements. Arrays in JavaScript can work both as a queue and as a stack. They allow you to add/remove elements both to/from the beginning or the end.</p>\n<p>According to <a href=\"https://en.wikipedia.org/wiki/Double-ended_queue\">Wikipedia</a> a double-ended queue (abbreviated to <strong>deque</strong>, pronounced deck[1]) is an abstract data type that generalizes a queue, for which elements can be added to or removed from either the front (head) or back (tail).</p>\n<ul>\n<li>\n<p><strong>push</strong> method : adds elements to the end of the array</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> newJourney <span class=\"token operator\">=</span> learningHowToCode<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Rewarding'</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n</li>\n<li>\n<p><strong>pop</strong> method : removes the last element and returns that element only</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> mainGoal <span class=\"token operator\">=</span> learningHowToCode<span class=\"token punctuation\">.</span><span class=\"token function\">pop</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Rewarding'</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n</li>\n<li>\n<p><strong>unshift</strong> : adds the element to the beginning of an array</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> focus <span class=\"token operator\">=</span> learningHowToCode<span class=\"token punctuation\">.</span><span class=\"token function\">unshift</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Takes time'</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n</li>\n<li>\n<p><strong>shift</strong> : extracts the first element and returns it</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> reminder <span class=\"token operator\">=</span> learningHowToCode<span class=\"token punctuation\">.</span><span class=\"token function\">shift</span><span class=\"token punctuation\">(</span><span class=\"token string\">'Takes time'</span><span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span></span></pre></div>\n</li>\n<li>If you want you access the last index you can use -1, there is a neater way to do it with splice but this is also effective</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">var</span> array <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token number\">6</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">var</span> val <span class=\"token operator\">=</span> array<span class=\"token punctuation\">[</span>array<span class=\"token punctuation\">.</span>length <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n<ul>\n<li>\n<p><strong>splice</strong> : it can add, remove or replace elements.</p>\n<ul>\n<li>You can use negative indexes, -1 is one step from the last element for example\n<strong>modifies the array</strong></li>\n</ul>\n</li>\n</ul>\n<p>Syntax:\n<code class=\"language-text\">arr.splice(index, deleteAmount, elem1,..anyOtherElement)</code>\nHow to remove elements:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> poem <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"high\"</span><span class=\"token punctuation\">,</span><span class=\"token string\">\"Still\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"I'll\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Rise\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\narr<span class=\"token punctuation\">.</span><span class=\"token function\">splice</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// from index 1 (arrays are zero index based) remove 1 element</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>poem<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// [\"Still\", \"I'll\", \"Rise\"]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>How to add elements:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> poem <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"Still\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"I'll\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Rise\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// from index 0, delete 0, then insert \"by Maya Angelou\"</span>\npoem<span class=\"token punctuation\">.</span><span class=\"token function\">splice</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"by Maya Angelou\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>poem<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// \"\"Still\", \"I'll\", \"Rise\", \"by Maya Angelou\"</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>\n<p><strong>slice</strong> : returns a new array with a copy of elements that you specified (excluding the last element)</p>\n<ul>\n<li>If you call it without arguments, it just creates a copy of an array </li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> soup <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"carrots\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"onions\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"garlic\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"potatoes\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"juice\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span> soup<span class=\"token punctuation\">.</span><span class=\"token function\">slice</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// \"carrots\", \"onions\", \"garlic\", \"potatoes</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span> soup<span class=\"token punctuation\">.</span><span class=\"token function\">slice</span><span class=\"token punctuation\">(</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// juice</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li><strong>concat</strong> : creates a new array that includes values from other arrays and any other additional items</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> days <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"Monday\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Tuesday\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// create a new array from: days and adds these new elements</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span> days<span class=\"token punctuation\">.</span><span class=\"token function\">concat</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">[</span><span class=\"token string\">\"Wednesday\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Thursday\"</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//\"Monday\", \"Tuesday\",\"Wednesday\", \"Thursday\"</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<h3>Iterating/Searching in an array</h3>\n<ul>\n<li>\n<p><strong>forEach</strong> : runs a function for each element in an array</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\">days<span class=\"token punctuation\">.</span><span class=\"token function\">forEach</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">item</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">{</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">Have a lovely day on </span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span>item<span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">!</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//Have a lovely day on Monday!</span>\n<span class=\"token comment\">//Have a lovely day on Tuesday!</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n</li>\n<li><strong>Filter</strong> : creates a new array with all elements that pass the test implemented by the provided function.\nFilter takes in a function (that returns true or false) that is run on each element of the array. All elements that return true are kept, and false ones are thrown away.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\">names <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">\"Leanne\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Sophie\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Max\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Jorge\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"Peter\"</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">var</span> longNames <span class=\"token operator\">=</span> names<span class=\"token punctuation\">.</span><span class=\"token function\">filter</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">name</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">return</span> name<span class=\"token punctuation\">.</span>length <span class=\"token operator\">>=</span> <span class=\"token number\">6</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Longer names: \"</span><span class=\"token punctuation\">,</span> longNames<span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>\n<p><strong>Find</strong> : Looks for an item, if found returns true, if not, returns false. Syntax:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> result <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">item<span class=\"token punctuation\">,</span> index<span class=\"token punctuation\">,</span> array</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token comment\">//stops the loop if item is found and returns the item</span>\n<span class=\"token comment\">//item is the element. index is its index.</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<p>If we have an array of songs, and need to find the one with year == 2005</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> beyonceSongs <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n<span class=\"token punctuation\">{</span>year<span class=\"token punctuation\">:</span> <span class=\"token number\">2005</span><span class=\"token punctuation\">,</span> title<span class=\"token punctuation\">:</span> <span class=\"token string\">\"Check On It\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">{</span>year<span class=\"token punctuation\">:</span> <span class=\"token number\">2011</span><span class=\"token punctuation\">,</span> title<span class=\"token punctuation\">:</span> <span class=\"token string\">\"I Was Here\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">{</span>year<span class=\"token punctuation\">:</span> <span class=\"token number\">2011</span><span class=\"token punctuation\">,</span> title<span class=\"token punctuation\">:</span> <span class=\"token string\">\"Love On Top\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">{</span>year<span class=\"token punctuation\">:</span> <span class=\"token number\">2008</span><span class=\"token punctuation\">,</span> title<span class=\"token punctuation\">:</span> <span class=\"token string\">\"If I Were A Boy\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> \n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">let</span> oldestSong <span class=\"token operator\">=</span> beyonceSongs<span class=\"token punctuation\">.</span><span class=\"token function\">find</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">song</span> <span class=\"token operator\">=></span> song<span class=\"token punctuation\">.</span>year <span class=\"token operator\">==</span> <span class=\"token number\">2005</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>oldestSong<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// {year: 2005, title: \"Check On It\"}</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n</li>\n<li><strong>indexOf</strong> : returns the first index where a given element can be found, or -1 if it is not found</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> tea <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'peppermint'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'chamomile'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'rooibos'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'earl grey'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>tea<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">'rooibos'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// expected output: 2</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>tea<span class=\"token punctuation\">.</span><span class=\"token function\">indexOf</span><span class=\"token punctuation\">(</span><span class=\"token string\">'raspberry'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// expected output: -1</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<ul>\n<li>arr.lastIndexOf(item, from) – same, but looks for from right to left</li>\n<li>arr.includes(item, from) – looks for item starting from index from, returns true if found</li>\n</ul>\n<h3>Changing an array</h3>\n<ul>\n<li>\n<p><strong>map</strong> : One of the most popular methods. This method calls a function for each element of an array and returns an array of results. Syntax:</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> result <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">item<span class=\"token punctuation\">,</span> index<span class=\"token punctuation\">,</span> array</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token comment\">// returns the new value instead of item</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span></span></pre></div>\n<p>For example, you can double each elements amount</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">let</span> wallet <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">100</span><span class=\"token punctuation\">,</span> <span class=\"token number\">250</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">var</span> newAmount<span class=\"token operator\">=</span> wallet<span class=\"token punctuation\">.</span><span class=\"token function\">map</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">cash</span> <span class=\"token operator\">=></span> cash <span class=\"token operator\">*</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n<span class=\"token comment\">//if you use it as a function, make sure you return</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>newAmount<span class=\"token punctuation\">)</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n</li>\n<li>\n<p><strong>sort</strong> : sorts an array, and changes element order, the default sort order is ascending.\nThe items are sorted as strings by default.\nIf you want to use your own sorting order, you need to supply a function as the argument of arr.sort().\n<strong>modifies the array</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> months <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token string\">'March'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Jan'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Feb'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'Dec'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nmonths<span class=\"token punctuation\">.</span><span class=\"token function\">sort</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span>months<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">// expected output: Array [\"Dec\", \"Feb\", \"Jan\", \"March\"]</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span></span></pre></div>\n<p>I would recommend looking into the MDN docs for more information, their examples are the best.</p>\n</li>\n<li>\n<p><strong>reverse</strong> : reverses the order of elements in an array.\n<strong>modifies the array</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> numbers <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">,</span> <span class=\"token number\">4</span><span class=\"token punctuation\">,</span> <span class=\"token number\">5</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\nconsole<span class=\"token punctuation\">.</span><span class=\"token function\">log</span><span class=\"token punctuation\">(</span><span class=\"token string\">'reversed numbers:'</span><span class=\"token punctuation\">,</span> numbers<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span></span></pre></div>\n</li>\n<li><strong>reduce</strong> : used to calculate a single value based on the array.</li>\n<li>\n<p>reduce uses an \"accumulator\" whih basically means any value you want, the example used is a sum</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre style=\"counter-reset: linenumber NaN\" class=\"language-javascript line-numbers\"><code class=\"language-javascript\"><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span> <span class=\"token number\">3</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span><span class=\"token function\">reduce</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token parameter\">acc<span class=\"token punctuation\">,</span> n</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token keyword\">return</span> acc <span class=\"token operator\">+</span> n<span class=\"token punctuation\">;</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>  <span class=\"token comment\">// 6</span>\n<span class=\"token comment\">// Or written out:</span>\n<span class=\"token keyword\">let</span> acc <span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\nacc <span class=\"token operator\">=</span> acc <span class=\"token operator\">+</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>  <span class=\"token comment\">// 3</span>\nacc <span class=\"token operator\">=</span> acc <span class=\"token operator\">+</span> <span class=\"token number\">3</span><span class=\"token punctuation\">;</span>  <span class=\"token comment\">// 6</span></code><span aria-hidden=\"true\" class=\"line-numbers-rows\" style=\"white-space: normal; width: auto; left: 0;\"><span></span><span></span><span></span><span></span><span></span></span></pre></div>\n</li>\n</ul>\n<p>All in all, I do not have to go in depth with all the array methods because I can always refer to <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array\">MDN Docs</a>. Only gripe I have with it, is that I find it difficult to read sometimes. The words are either too technical or require more knowledge, with time it gets easier to read. </p>","excerpt":"Arrays have many useful methods.  They are objects that are used to store lists of items. Elements inside can be of any data type, each one is accessed by it's…","frontmatter":{"date":"10 May, 2020","path":"/blog/arraymethods","title":"Array Methods"},"fields":{"readingTime":{"text":"6 min read"}}}},"pageContext":{}}}