{"@attributes":{"version":"2.0"},"channel":{"title":"DEV Community: John Samuel Obinna","description":"The latest articles on DEV Community by John Samuel Obinna (@johnsamuelob).","link":"https:\/\/dev.to\/johnsamuelob","image":{"url":"https:\/\/media2.dev.to\/dynamic\/image\/width=90,height=90,fit=cover,gravity=auto,format=auto\/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F19967%2F6adae334-3e74-491a-acd7-afa2abd8d23b.jpg","title":"DEV Community: John Samuel Obinna","link":"https:\/\/dev.to\/johnsamuelob"},"language":"en","item":[{"title":"How to Export Database Records to Excel using PHP(Laravel)","pubDate":"Wed, 07 Jul 2021 12:20:58 +0000","link":"https:\/\/dev.to\/johnsamuelob\/how-to-export-database-records-to-excel-using-php-laravel-1g30","guid":"https:\/\/dev.to\/johnsamuelob\/how-to-export-database-records-to-excel-using-php-laravel-1g30","description":"<p>Have you encountered a challenge where you need to export records from the database to excel using Laravel?<\/p>\n\n<p>We will be using <a href=\"https:\/\/laravel-excel.com\">Maatwebsite<\/a> Laravel package <\/p>\n\n<h2>\n  \n  \n  Installation\n<\/h2>\n\n<p>First require the Maatwebsite laravel package in your <code>composer.json<\/code><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>composer require maatwebsite\/excel\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>The <code>Maatwebsite\\Excel\\ExcelServiceProvider<\/code> is registered by default. But you can manually register the ServiceProvider in your <code>config\/app.php<\/code><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>'providers' =&gt; [\n    \/*\n     * Service Providers...\n     *\/\n    Maatwebsite\\Excel\\ExcelServiceProvider::class,\n]\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>The Excel Facade is discovered and registered by default. But you can add it manually to your <code>config\/app.php<\/code><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>'aliases' =&gt; [\n    ....\n    'Excel' =&gt; Maatwebsite\\Excel\\Facades\\Excel::class,\n]\n\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Publish config by running the vendor command<\/p>\n\n<p><code>php artisan vendor:publish --provider=\"Maatwebsite\\Excel\\ExcelServiceProvider\" --tag=config<\/code><\/p>\n\n<p>This will create a new config file named <code>config\/excel.php.<\/code> and your setup is completed.<\/p>\n\n<h2>\n  \n  \n  Exporting\n<\/h2>\n\n<p>On our already seeded database, we will be exporting those records to an excel file.<a href=\"https:\/\/laravel.com\/docs\/8.x\/seeding\">Checkout how to seed in laravel<\/a> First we create a controller using:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code> php artisan make:controller ExportToExcelController\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>then we create an export class in the <code>app\\Export<\/code> using the:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>php artisan make:export UsersExport --model=User\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>the <code>UsersExport<\/code> is the Export class while the flag <code>--model=User<\/code> is referencing the model class in use.<\/p>\n\n<p>The result of the command <code>php artisan make:export UsersExport --model=User<\/code>:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\n&lt;?php\n\nnamespace App\\Exports;\n\nuse App\\Models\\User;\nuse Maatwebsite\\Excel\\Concerns\\FromCollection;\n\nclass UsersExport implements FromCollection\n{\n    public function collection()\n    {\n        return User::all();\n    }\n}\n\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Head over to your <code>ExportToExcelController<\/code> you can export records<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\n&lt;?php\n\nnamespace App\\Http\\Controllers;\n\nuse App\\Exports\\UsersExport;\nuse Maatwebsite\\Excel\\Facades\\Excel;\n\nclass ExportToExcelController extends Controller \n{\n    public function ExportRecords() \n    {\n        return Excel::download(new UsersExport, 'users.xlsx');\n    }\n}\n\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Ooh one more thing, add a route to be able to access ExportRecords:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Route::get('data\/export\/', 'ExportToExcelController@ExportRecords');\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>Thats IT!<\/strong> \ud83d\ude0e<\/p>\n\n","category":["laravel","php"]},{"title":"When should I call myself a software Engineer","pubDate":"Sat, 06 Apr 2019 08:06:39 +0000","link":"https:\/\/dev.to\/johnsamuelob\/when-should-i-call-myself-a-software-engineer-4cei","guid":"https:\/\/dev.to\/johnsamuelob\/when-should-i-call-myself-a-software-engineer-4cei","description":{},"category":"discuss"},{"title":"Asynchronous JavaScript for Newbies","pubDate":"Thu, 26 Apr 2018 09:57:17 +0000","link":"https:\/\/dev.to\/johnsamuelob\/asynchronous-javascript-for-newbies-k61","guid":"https:\/\/dev.to\/johnsamuelob\/asynchronous-javascript-for-newbies-k61","description":"<p>When writing JavaScript we frequently deal with Asynchronous  code which can be confusing for us as newbies. Before we jump into Asynchronous JavaScript lets talk a little about Synchronous Code.<\/p>\n\n<h2>\n  \n  \n  What is Synchronous Code?\n<\/h2>\n\n<p>Synchronous Code runs on a single thread. 1 Action is completed before moving to the  next.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code> <span class=\"nx\">thread<\/span> <span class=\"o\">-<\/span>\n          <span class=\"o\">|<\/span>\n          <span class=\"nx\">V<\/span>    \n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">Line1<\/span><span class=\"o\">&lt;---------<\/span><span class=\"nx\">A<\/span><span class=\"o\">---------&gt;|<\/span><span class=\"nx\">Finish<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">Line2<\/span><span class=\"o\">&lt;---------<\/span><span class=\"nx\">B<\/span><span class=\"o\">---------&gt;|<\/span><span class=\"nx\">Finish<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">Line3<\/span><span class=\"o\">&lt;---------<\/span><span class=\"nx\">C<\/span><span class=\"o\">---------&gt;|<\/span><span class=\"nx\">Finish<\/span>\n\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h2>\n  \n  \n  Asynchronous Code\n<\/h2>\n\n<p>Unlike Synchronous code, asynchronous code runs now and finishes later.<br>\nFrom the illustration below, as you can see, the fn2 line was not finished but was completed after fn6 has been executed.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code> <span class=\"nx\">thread<\/span> <span class=\"o\">-<\/span>                                                <span class=\"nx\">Separate<\/span> <span class=\"nx\">thread<\/span> <span class=\"nx\">outside<\/span> <span class=\"nx\">you<\/span> <span class=\"nx\">code<\/span><span class=\"p\">.<\/span>\n          <span class=\"o\">|<\/span>                                             <span class=\"sr\">\/<\/span><span class=\"err\">\n<\/span>          <span class=\"nx\">V<\/span>                                            <span class=\"o\">\/<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn1<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">A<\/span><span class=\"o\">----------&gt;|<\/span><span class=\"nx\">Finish<\/span>       <span class=\"o\">\/<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn2<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">B<\/span><span class=\"o\">-----------|-------------|<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn3<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">C<\/span><span class=\"o\">----------&gt;|<\/span><span class=\"nx\">Finish<\/span>       <span class=\"o\">|<\/span>\n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn4<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">D<\/span><span class=\"o\">----------&gt;|<\/span><span class=\"nx\">Finish<\/span>       <span class=\"nx\">V<\/span> \n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn5<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">E<\/span><span class=\"o\">----------&gt;|<\/span><span class=\"nx\">Finish<\/span>       <span class=\"o\">|<\/span> \n          <span class=\"nx\">Start<\/span><span class=\"o\">|<\/span><span class=\"nx\">fn6<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">F<\/span><span class=\"o\">----------&gt;|<\/span><span class=\"nx\">Finish<\/span>       <span class=\"nx\">V<\/span>  \n      <span class=\"nx\">Callback<\/span> <span class=\"o\">|<\/span><span class=\"nx\">fn2<\/span><span class=\"o\">&lt;--------<\/span><span class=\"nx\">B<\/span><span class=\"o\">----------&gt;|&lt;------------|<\/span>                                               \n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Note that JavaScript is single-threaded, only to code you write but Requests made from your code are handed over to a separate thread. Let's say an Api call for example. Hold it, i know what you are thinking; What's a 'Callback'? Don't worry next we're going to discuss 'Callback'.<\/p>\n\n<h2>\n  \n  \n  What is a Callback?\n<\/h2>\n\n<p>A callback is a function passed into another function as an argument, which is then invoked inside the out function to complete some kind of action.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code>\n<span class=\"kd\">function<\/span> <span class=\"nx\">Callback<\/span><span class=\"p\">(){<\/span>\n <span class=\"nx\">alert<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">You called Me<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nx\">setTimeout<\/span><span class=\"p\">(<\/span><span class=\"nx\">callback<\/span><span class=\"p\">,<\/span><span class=\"mi\">300<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">\/\/ You called Me<\/span>\n\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>This is a Synchronous callback, next we're going to talk about <\/p>\n\n<h5>\n  \n  \n  -Asynchronous callback.\n<\/h5>\n\n<h5>\n  \n  \n  -Callback Hell.\n<\/h5>\n\n<h5>\n  \n  \n  -Ajax Requests.\n<\/h5>\n\n<h5>\n  \n  \n  -Promises.\n<\/h5>\n\n<h5>\n  \n  \n  -Generators.\n<\/h5>\n\n","category":["asynchronouscode","javascript","codenewbie","juniordevs"]},{"title":"What you need to know as a junior Developer.","pubDate":"Tue, 24 Apr 2018 11:48:12 +0000","link":"https:\/\/dev.to\/adroitcoder\/what-you-need-to-know-as-a-junior-developer-3an4","guid":"https:\/\/dev.to\/adroitcoder\/what-you-need-to-know-as-a-junior-developer-3an4","description":"<p><a href=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmq4swcb69cc06movivu0.png\" class=\"article-body-image-wrapper\"><img src=\"https:\/\/media.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fmq4swcb69cc06movivu0.png\" alt=\"code\"><\/a><\/p>\n\n<p><em>Also Posted at <a href=\"https:\/\/www.codementor.io\/adroitcoder\/what-you-need-to-know-as-a-junior-developer-ivwj9sghm\" rel=\"noopener noreferrer\">codementor<\/a><\/em><\/p>\n\n<p>Every newbie wants to build something cool but the urge to get it done quickly  sometimes lead to skipping procedures which can lead to  holes.<br>\nAm going to keep it short and simple, below are 5 key points to do and avoid as a newbie developer.<\/p>\n\n<h2>\n  \n  \n  1. Accept you are a Junior Developer.\n<\/h2>\n\n<p>Accepting to be a junior developer puts you on a track of procedures, which actually lead to proper learning and consistency.<\/p>\n\n<h2>\n  \n  \n  2.Understand, don\u2019t imitate.\n<\/h2>\n\n<p>Imitating is an enemy of creativity and innovation. Sometime we feel the need to imitate someone but understanding should be place first.<\/p>\n\n<h2>\n  \n  \n  3.Give yourself time to Master.\n<\/h2>\n\n<p>The brain is just a house with bricks laid on bricks; Giving yourself time to grow is an essential skill to attach to development skill. Remember it\u2019s not a race.<\/p>\n\n<h2>\n  \n  \n  4.Don\u2019t follow Social media trends.\n<\/h2>\n\n<p>Not everyone will agree with me on this but getting rid of this behavior was one of the best things that has happened to me. I know we all want to join the team of those cool developers using one trending language or frameworks, but lack of proper understanding of the foundation will lead to bad or poor usage of those tools. Just give yourself time to understand the basics first.<\/p>\n\n<h2>\n  \n  \n  5.Never Stop!\n<\/h2>\n\n<p>No one  was born with code brain or some magic powers. Every guru and serious developer out there got to the top with constant practices and learning. Coding is not difficult, but your patient and passion for it will be tested. <\/p>\n\n","category":["juniordeveloper","code","newbie"]},{"title":"Includes() vs indexOf() in JavaScript ","pubDate":"Mon, 04 Sep 2017 06:40:28 +0000","link":"https:\/\/dev.to\/adroitcoder\/includes-vs-indexof-in-javascript","guid":"https:\/\/dev.to\/adroitcoder\/includes-vs-indexof-in-javascript","description":"\n\n<p>ES2016 Specifications included the\u00c2  <code>includes()<\/code> method\u00c2  for\u00c2  Array data structure.\u00c2 The <code>includes()<\/code> method check if an array includes a certain element, returning <code>true<\/code> or <code>false<\/code> as appropriate.<br>\nBut in ES5 we are used to performing operations like this with <code>indexOf()<\/code> method.<\/p>\n\n<p>Using <code>includes()<\/code> method.<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">array<\/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=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">];<\/span>\n\n<span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">includes<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">)<\/span> <span class=\"p\">){<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"true 4 was found in the array\"<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/ true 4 was found in the array<\/span>\n<span class=\"p\">}<\/span> \n<\/code><\/pre><\/div>\n\n\n\n<p>Let's perform the same operation with <code>indexOf()<\/code> method.<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">array<\/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=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">];<\/span>\n\n<span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">indexOf<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">)<\/span> <span class=\"o\">&gt;<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"p\">){<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"true 4 was found in the array\"<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/ true 4 was found in the array<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre><\/div>\n\n\n\n<p>Using <code>includes()<\/code> method to check for <code>NaN<\/code> <\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"err\">\u00c2<\/span> <span class=\"kd\">const<\/span><span class=\"err\">\u00c2<\/span>  <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">NaN<\/span><span class=\"p\">];<\/span>\n\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">includes<\/span><span class=\"p\">(<\/span><span class=\"kc\">NaN<\/span><span class=\"p\">)){<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"true. NAN was found in the array\"<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ true. NAN was found in the array<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre><\/div>\n\n\n\n<p>This is where things begin to fall apart with <code>indexOf()<\/code> method.<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span>  <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"kc\">NaN<\/span><span class=\"p\">];<\/span>\n<span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">indexOf<\/span><span class=\"p\">(<\/span><span class=\"kc\">NaN<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">){<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"NaN not found in the array\"<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/NaN not found in the array<\/span>\n<span class=\"p\">}<\/span>\n\n<\/code><\/pre><\/div>\n\n\n\n<p>Checking for <code>undefined<\/code> with the <code>includes()<\/code> method.<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[,<\/span> <span class=\"p\">,<\/span> <span class=\"p\">,<\/span> <span class=\"p\">,];<\/span>\n\n<span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">includes<\/span><span class=\"p\">(<\/span><span class=\"kc\">undefined<\/span><span class=\"p\">)){<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"true array elements are undefined\"<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ true array elements are undefined<\/span>\n<span class=\"p\">}<\/span> \n<\/code><\/pre><\/div>\n\n\n\n<p>Let's see how <code>indexOf()<\/code> method will handle this operation.<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[,<\/span> <span class=\"p\">,<\/span> <span class=\"p\">,<\/span> <span class=\"p\">,];<\/span>\n\n<span class=\"k\">if<\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">indexOf<\/span><span class=\"p\">(<\/span><span class=\"kc\">undefined<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span> <span class=\"p\">){<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"true. array elements are undefined\"<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span><span class=\"k\">else<\/span> <span class=\"p\">{<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">\"Sorry can't find undefined\"<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ Sorry can't find undefined<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre><\/div>\n\n\n\n<p>The <code>includes()<\/code> method\u00c2  does not distinguish between -0 and +0<\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">a<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">includes<\/span><span class=\"p\">(<\/span><span class=\"o\">+<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/true<\/span>\n<\/code><\/pre><\/div>\n\n\n\n<p>Typed Arrays will also have a method <code>includes()<\/code><\/p>\n\n\n\n<div class=\"highlight\"><pre class=\"highlight javascript\"><code><span class=\"kd\">let<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">Uint8Array<\/span><span class=\"p\">.<\/span><span class=\"k\">of<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">4<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">includes<\/span><span class=\"p\">(<\/span><span class=\"mi\">4<\/span><span class=\"p\">));<\/span><span class=\"c1\">\/\/true<\/span>\n<\/code><\/pre><\/div>\n\n\n\n<h3>\n  \n  \n  Summary\n<\/h3>\n\n<ul>\n<li>The includes method finds <em>NaN<\/em> and <em>undefined<\/em>  whereas the indexOf method doesn't.<\/li>\n<li>The includes() method\u00c2  does not distinguish between -0 and +0(This is not a bug, but clearly how javascript works. <a href=\"http:\/\/speakingjs.com\/es5\/ch11.html#two_zeros\">Check javascript Number type<\/a>)<\/li>\n<li>Read more from <a href=\"https:\/\/developer.mozilla.org\/en\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Array\/includes\">MDN about Array.prototype.includes()<\/a>\n<\/li>\n<\/ul>\n\n\n","category":["javascript","arrayprototype"]},{"title":"Data Structure and Algorithm Basics part[0]","pubDate":"Sat, 02 Sep 2017 20:00:21 +0000","link":"https:\/\/dev.to\/johnsamuelob\/data-structure-and-algorithm-basics-part0","guid":"https:\/\/dev.to\/johnsamuelob\/data-structure-and-algorithm-basics-part0","description":"<p>Before you jump into Data Structure &amp; Algorithm #mypersonalnotebook I would assume you have basic knowledge of the following:<\/p>\n\n<ul>\n<li>Conditional<\/li>\n<li>Repetition Construct (forloop &amp; while loops)<\/li>\n<li>Functions<\/li>\n<li>Variable Scope<\/li>\n<li>Recursion<\/li>\n<li>Declaring Classes<\/li>\n<\/ul>\n\n<p>Just basic stuff a JavaScript programmer will know.<\/p>\n\n<h4>\n  \n  \n  Note:\n<\/h4>\n\n<ul>\n<li>All output will be displayed on the Console.<\/li>\n<li>Data Structure &amp; Algorithm will be broken into parts.<\/li>\n<li>If you don't have a basic knowledge above-listed, I will recommend you grab a copy of <a href=\"http:\/\/eloquentjavascript.net\">Eloquent Javascript<\/a>\n<\/li>\n<li>All codes used here are available on my <a href=\"https:\/\/github.com\/adroitcoder\">Github<\/a> repository.<\/li>\n<\/ul>\n\n<h3>\n  \n  \n  Array\n<\/h3>\n\n<p>Every programming language includes some form of array.<br>\nArrays are the most common data structure in computer programming.<\/p>\n<h3>\n  \n  \n  Array in JavaScript\n<\/h3>\n\n<p>Arrays in javascript are linear collection of elements where each element can be access via an index (numeric indexing).<\/p>\n<h3>\n  \n  \n  How to Create Arrays in Javascript\n<\/h3>\n\n<p>The most recommended way of creating arrays in javascript is by Declaring a variable using the computed members access <strong>[]<\/strong> operator.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">myArray<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[];<\/span>\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>When you create an array like this, you will have an array with a length value of 0. Let's play around to be sure.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">myArray<\/span> <span class=\"o\">=<\/span>  <span class=\"p\">[];<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">myArray<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/0<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>We can also create an array using the constructed pattern.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">myArray<\/span> <span class=\"o\">=<\/span>  <span class=\"k\">new<\/span> <span class=\"nb\">Array<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">myArray<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/0<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h5>\n  \n  \n  Note:\n<\/h5>\n\n<ul>\n<li>Arrays in javascript are collections of anything(functions,objects,primitives e.t.c)<\/li>\n<li>Counting begins at index 0 not 1<\/li>\n<\/ul>\n\n<h3>\n  \n  \n  Accessing Array Elements\n<\/h3>\n\n<p>Array Elements can be accessed using the <strong>[]<\/strong> operator.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">names<\/span> <span class=\"o\">=<\/span>  <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Somto<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Ezeh<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,];<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">names<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">+<\/span> <span class=\"dl\">'<\/span><span class=\"s1\"> <\/span><span class=\"dl\">'<\/span> <span class=\"nx\">names<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span><span class=\"c1\">\/\/ Somto Ezeh<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h3>\n  \n  \n  Writing Array Elements\n<\/h3>\n\n<p>Assigning data to the array we use <strong>[]<\/strong><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">numbers<\/span> <span class=\"o\">=<\/span>  <span class=\"p\">[];<\/span>\n<span class=\"k\">for<\/span><span class=\"p\">(<\/span><span class=\"kd\">var<\/span> <span class=\"nx\">i<\/span><span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">10<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">){<\/span>\n    <span class=\"nx\">numbers<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">numbers<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/1,2,3,4,5,6,7,8,9,10<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h3>\n  \n  \n  Array from strings\n<\/h3>\n\n<p>Invoking the <strong>split()<\/strong> function on a string breaks up that string into separate parts and produces an array from that individual string.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">string<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">I Love javascript <\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">makeArray<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">string<\/span><span class=\"p\">.<\/span><span class=\"nx\">split<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\"> <\/span><span class=\"dl\">'<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">makeArray<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/[\"I\",\"Love\",\"javascript\"]<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h3>\n  \n  \n  Accesor Functions\n<\/h3>\n\n<p>With the javascript <em>accessor<\/em> function, we can access an element of an array and return some value.<\/p>\n\n<p><strong>indexOf()<\/strong><\/p>\n\n<p>The indexOf function loops through an array to see if the parameter passed to it, is found inside the target array and return the position.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code> <span class=\"kd\">var<\/span> <span class=\"nx\">names<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Obinna<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n <span class=\"kd\">var<\/span> <span class=\"nx\">position<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">names<\/span><span class=\"p\">.<\/span><span class=\"nx\">indexOf<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">position<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/1<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>The <strong>indexOf()<\/strong> function returns the position of the first element that matches the argument or returns -1, if not found.<\/p>\n\n<p><strong>lastIndexOf()<\/strong><br>\nThe lastIndexOf function loops through an array to see if the parameter passed to it, is found inside the target array and returns the last position matched or returns -1, if not found.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code> <span class=\"kd\">var<\/span> <span class=\"nx\">names<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Obinna<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n <span class=\"kd\">var<\/span> <span class=\"nx\">position<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">names<\/span><span class=\"p\">.<\/span><span class=\"nx\">lastIndexOf<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">position<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/2<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>toString()<\/strong> and <strong>join()<\/strong> returns a string representation of an array separated with commas.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code>  <span class=\"kd\">var<\/span> <span class=\"nx\">myArray<\/span>  <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">How to use<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Accesor<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Functions<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n  <span class=\"kd\">var<\/span> <span class=\"nx\">makeString<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">myArray<\/span><span class=\"p\">.<\/span><span class=\"nx\">join<\/span><span class=\"p\">()<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">makeString<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/How to use,Accesor,Functions<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>To get rid of the commas, you pass in an empty quote to the <em>join()<\/em> function.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code>  <span class=\"kd\">var<\/span> <span class=\"nx\">myArray<\/span>  <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">How to use<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Accesor<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Functions<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n  <span class=\"kd\">var<\/span> <span class=\"nx\">makeString<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">myArray<\/span><span class=\"p\">.<\/span><span class=\"nx\">join<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\"> <\/span><span class=\"dl\">\"<\/span><span class=\"p\">)<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">makeString<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/How to use Accesor Functions<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>The <strong>concat()<\/strong> and <strong>splice()<\/strong> function produces a new array from an existing array.<br>\nThe <strong>concat()<\/strong> function combines more arrays and produces a new array, and the <strong>splice()<\/strong> function produces a new array from a subset of a target array.<\/p>\n\n<p><em>concat()<\/em><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">firstArray<\/span>  <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Princess<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Precious<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Patience<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Pessy<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">secondArray<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Adesunloye<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Adedeji<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Adetoro<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">joinAll<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">firstArray<\/span><span class=\"p\">.<\/span><span class=\"nx\">concat<\/span><span class=\"p\">(<\/span><span class=\"nx\">secondArray<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">joinAll<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/[\"Princess\", \"Precious\", \"Patience\", \"Pessy\",\"Adesunloye\",\"Adedeji\",\"Adetoro\"]<\/span>\n\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><em>splice()<\/em><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">names<\/span>  <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Princess<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Precious<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Patience<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Pessy<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">newArray<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">names<\/span><span class=\"p\">.<\/span><span class=\"nx\">splice<\/span><span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"mi\">3<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">newArray<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/[\"Patience\",\"Pessy\"]<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h3>\n  \n  \n  Mutator Functions\n<\/h3>\n\n<p><strong>pop()<\/strong><\/p>\n\n<p>The <em>pop()<\/em> function removes an element from the end of an Array and returns the value.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/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=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">remove<\/span>  <span class=\"o\">=<\/span> <span class=\"nx\">numbers<\/span><span class=\"p\">.<\/span><span class=\"nx\">pop<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">remove<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ 6<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Adding an element to an array<br>\nThere are two ways to add an element to an array.<br>\nThey are <em>push()<\/em> and <em>unshift()<\/em> but we are going to talk about the <em>push()<\/em> function first.<\/p>\n\n<p><strong>push()<\/strong><\/p>\n\n<p>The <em>push()<\/em> function adds an element to the end of an array.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/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=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">];<\/span>\n<span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">push<\/span><span class=\"p\">(<\/span><span class=\"mi\">9<\/span><span class=\"p\">)<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">)<\/span> <span class=\"c1\">\/\/ 1,2,3,4,5,6,7,8,9<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>unshift()<\/strong><br>\nThe <em>unshift()<\/em> function adds an element to the beginning of an array.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/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> \n<span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">unshift<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/1234<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>shift()<\/strong><br>\nThe <em>shift()<\/em> function removes an element from the beginning of an Array and returns the value<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">I<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">LOVE<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">ARRAYS<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">firstElementRemoved<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">shift<\/span><span class=\"p\">();<\/span> \n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">firstElementRemoved<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ I<\/span>\n\n<span class=\"c1\">\/\/You can also decide to discard the return value <\/span>\n\n<span class=\"kd\">var<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">I<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">LOVE<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">ARRAYS<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n            <span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">shift<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/[\"LOVE\", \"ARRAYS\"]<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>splice()<\/strong><br>\nThe <em>splice()<\/em> function adds or removes an element from the middle of an array.<br>\nThe following arguments are needed to add or remove an element(s) from the middle of an array.<\/p>\n\n<ul>\n<li>The starting index (where you want to begin adding elements).<\/li>\n<li>The number of elements to remove (0 when you are adding elements).<\/li>\n<li>The elements you want to add to the array.\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span><span class=\"mi\">20<\/span><span class=\"p\">,<\/span><span class=\"mi\">30<\/span><span class=\"p\">,<\/span><span class=\"mi\">70<\/span><span class=\"p\">,<\/span><span class=\"mi\">80<\/span><span class=\"p\">,<\/span><span class=\"mi\">90<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">newArray<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">40<\/span><span class=\"p\">,<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span><span class=\"mi\">60<\/span><span class=\"p\">];<\/span> \n<span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">splice<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"nx\">newArray<\/span><span class=\"p\">);<\/span> \n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/10,20,30,[40,50,60],70,80,90<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n<p>Elements passed into the <em>splice()<\/em> function can be a list and not necessarily a collection of arrays.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">10<\/span><span class=\"p\">,<\/span><span class=\"mi\">20<\/span><span class=\"p\">,<\/span><span class=\"mi\">30<\/span><span class=\"p\">,<\/span><span class=\"mi\">70<\/span><span class=\"p\">,<\/span><span class=\"mi\">80<\/span><span class=\"p\">,<\/span><span class=\"mi\">90<\/span><span class=\"p\">];<\/span>\n<span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">splice<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"mi\">40<\/span><span class=\"p\">,<\/span><span class=\"mi\">50<\/span><span class=\"p\">,<\/span><span class=\"mi\">60<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">array<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/10,20,30,40,50,60,70,80,90<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Here is an example of using <em>splice()<\/em> to remove elements from an array:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code>\n<span class=\"kd\">var<\/span> <span class=\"nx\">intro<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Hello<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Callme<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">removeintro<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">intro<\/span><span class=\"p\">.<\/span><span class=\"nx\">splice<\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"mi\">2<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">removeintro<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/Callme,John <\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>reverse()<\/strong><br>\nThe <em>reverse()<\/em> function reverses the order of the elements of an array.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">array<\/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=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">,<\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"mi\">9<\/span><span class=\"p\">];<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">reverseArray<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">array<\/span><span class=\"p\">.<\/span><span class=\"nx\">reverse<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">reverseArray<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/9,8,7,6,5,4,3,2,1<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><strong>sort()<\/strong><br>\nThe <em>sort()<\/em> function sorts the elements of an array lexicographically: for more information about <a href=\"https:\/\/en.m.wikipedia.org\/wiki\/Lexicographical_order\">lexicographically<\/a><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/span> <span class=\"nx\">names<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Williams<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Joe<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">John<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Samuel<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Somto<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Ezeh<\/span><span class=\"dl\">\"<\/span><span class=\"p\">];<\/span> \n<span class=\"nx\">names<\/span><span class=\"p\">.<\/span><span class=\"nx\">sort<\/span><span class=\"p\">();<\/span> \n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">names<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/ Ezeh,Joe,John,Samuel,Somto,Williams<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Yay! All is working Fine, now let's see how the sort functions works with numbers.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">var<\/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=\"mi\">50<\/span><span class=\"p\">,<\/span><span class=\"mi\">60<\/span><span class=\"p\">,<\/span><span class=\"mi\">70<\/span><span class=\"p\">,<\/span><span class=\"mi\">80<\/span><span class=\"p\">,<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">];<\/span>\n<span class=\"nx\">numbers<\/span><span class=\"p\">.<\/span><span class=\"nx\">sort<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">numbers<\/span><span class=\"p\">);<\/span><span class=\"c1\">\/\/1,2,3,4,5,50,6,60,7,70,80<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Oops... <br>\nNot what we expected. Don't worry we can fix this by passing a function to the <em>sort()<\/em> function.<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">function<\/span> <span class=\"nx\">compare<\/span><span class=\"p\">(<\/span><span class=\"nx\">num1<\/span><span class=\"p\">,<\/span> <span class=\"nx\">num2<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n   <span class=\"k\">return<\/span> <span class=\"nx\">num1<\/span> <span class=\"o\">-<\/span> <span class=\"nx\">num2<\/span><span class=\"p\">;<\/span>\n <span class=\"p\">}<\/span>\n<span class=\"kd\">var<\/span> <span class=\"nx\">nums<\/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=\"mi\">50<\/span><span class=\"p\">,<\/span><span class=\"mi\">60<\/span><span class=\"p\">,<\/span><span class=\"mi\">70<\/span><span class=\"p\">,<\/span><span class=\"mi\">80<\/span><span class=\"p\">,<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"mi\">6<\/span><span class=\"p\">,<\/span><span class=\"mi\">7<\/span><span class=\"p\">];<\/span> \n<span class=\"kd\">var<\/span> <span class=\"nx\">sorted<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">nums<\/span><span class=\"p\">.<\/span><span class=\"nx\">sort<\/span><span class=\"p\">(<\/span><span class=\"nx\">compare<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">log<\/span><span class=\"p\">(<\/span><span class=\"nx\">sorted<\/span><span class=\"p\">)<\/span><span class=\"c1\">\/\/ 1,2,3,4,5,6,7,50,60,70,80<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>YES! It works.<\/p>\n\n<h4>\n  \n  \n  Datastructure &amp; Algorithm Basics part[1] will be available soon...\n<\/h4>\n\n","category":["mypersonalnotebook","javascript","datastructure","algorithms"]}]}}