Code Monkey home page Code Monkey logo

js-tidbits's Introduction

JS Tidbits

JS Tidbits is a collection of solutions of different programming problems as well as concepts in JavaScript.

As part of Hacktoberfest I am inviting people to contribute to it.

How to Contribute

There are 3 different ways you can contibute:

  1. Know a Programming problem you want to solve in JavaScrpit, Go to problems folder inside src and add your solution file with a .js extension.
  2. You want to Provide example of any JavaScript concept, Go to concepts folder inside src and add your file with proper examlpe.
  3. See a bug, a code not working, or you think you can write a better code, fix it and raise a PR.

NOTE:

  • Please do not copy paste code from the internet and add in here!
  • Your code must be working

⚠️ Before Creating a PR for any issue

Please Check if Someone has already been assigned the task or not. After creating PR ask for assigning the task to yourself.



Table of Contents

Concepts

Concept Name Link Description
Arrays link Is a special variable, which can hold more than one value at a time and of different data types.
Async Await link async is used to specify that a function will return a 'promise', await makes JS wait til the promises is resolve (like a promise in real life it could be true or false)
Compose link compose takes a series of single parameters functions that are used as the parameters of the previous function.
Console link console is used in the debugging process, it will display a message in the web console, it has methods as log(), error(), warn(), etc
Currying link Currying allows to translate a function from callable as f(a, b, c) into callable as f(a)(b)(c).
ES7 link ES7🌟 features: array.prototype.includes and exponentiation operator
ES8 link ES8 features: object.values, object/entries, string padding
ES10 link ES10: Array.flat(), Array.flatMap(), String.trim(), trimEnd() and trimStart(), Object.fromEntries and Optional Catch Binding
Lexical Scope link Lexical scoping refers to how variables in nested functions/inner levels can access to its outer levels (function scope, global scope)
Prototype Inheritance link A prototype object is a template object, from which other objects can inherit methods and properties.
Try - Catch link try{} catch {} statement allows to try a block of code and setting in catch the block of code you want to execute if an exception is thrown

🌟 ES stands for ECMA Script, which is a javascript standard. ES goes along to the numbrer corresponding to its release as ES6, ES7, etc.



Problems

Problem Link Description
Capitalize link Capitalize the first letter of a string given
Count ocurrencies of a number in a range link Find how many times that number appear in a range! The function will take 3 arguments, 2 to set the range and the number to find.
Duplicate link Duplicate an array/string by the given number.
Format String link Function that retunrs the format of 'Name1, Name2, .. & NameN' , being each Name# a value in an array given.
Longest distinct substring link Function that returns the longest string of non repeated characters.
Longest substring nested link Function the finds the longest substring in a array with nested arrays
Maskify link Function that converts every character given into # but the last 4 characters.
Max char link Function that finds the character most repeated in an string, the function should return the char and the amount of times it appears.
Palindrome link Function that returns true if the string given is a palindrome (a word that is read the same when its reversed). You'll find 4 diff ways to solve it in the file.
Smallest next element link Function that finds the next smallest element in the right (it could be 2 or more positions away) for a given array.
Start Pattern link Function that creates a start pattern ~ triangle, starting with 1 * until it reaches the given number.
String Reversal link Function that takes a string and returns the string reversed.
Unique link This function takes an array and returns only the unique elements (excludes the elements that are a repetition of a previous element)

Graphs 📊

Problem Link Description
Dijkstra Algorithm link The Dijkstra Algorithm consists in finding the shortest paths from a source to all vertices of a given graph. You'll find a function for creating the graph and also one for solving using the Dijkstra Algorithm

Searching 🕵🏽‍♂️

Problem Link Description
Binary Search link The Binary Search algorithm consists in finding an item from an array by dividing it in half until you go to all the items. In this function you'll see the implementation of Binary Search and use of recursion.
Linear Seacrh link The Binary Search algorithm consists in finding an item from an array by looking every element in a swequential way.

Sorting 🧹

Problem Link Description
Bubble sort link This algorithm consist in sorting an element in an array by swapping the item visited by the adjacent element if they are not in a correct order. You'll find a function for ascending and another for descending bubble sort in the link.
Comb sort link This algorithm, as Bubble Sort, swaps 2 elements in an array if they are not in the correct order, but it doesn't look for the adjacent one, Comb Sort uses a gap that starts with the length of the array and shrinks by a factor of 1.3 in every iteration.
Heap sort link This algorithm compares the elements of an array using Binary Heap, it sorts by setting an element as a node, if the element is greater than the others, it goes to the highest node and gets remove of the the sorting map.
Insertion sort link This algorithm divides the given array into a sorted (first element, to start) and unsorted part. In the 'unsorted part': it takes the first element and it's placed in the correct position of the sorted part to create the ascending sort.
Merge sort link Breaks down the array dividing it by two until it gets the individual elements, then it sorts and merges, this algorithm applies recursion.
Quick sort link This algorithm consists in taking an element as a pivot, then comparing to the pivot, it looks for a larger item (starting from the left) and a smaller item (starting from the right), it swaps the values until it sets the pivot in the correct position of the array, to be in the correct position means to have all the smaller on left and all the larger on the right. After this, it applies recyrsion by chooseing a new pivot in each "division" (right and left).
Radix sort link This algorithm sorts the numbers from least significant digit (U) to the most significant digit (T, H).
Selection sort link This algorithm takes the first element as the sorted one and finds the minimun element in the rest of the array comparing to the sorted one, if it's necessary they are swap, then moves to the next element and do the same process.

js-tidbits's People

Contributors

aman-agrwl avatar dependabot[bot] avatar karthikshetty03 avatar melissahuertadev avatar nitinshukla413 avatar rahilrehan avatar rajlomror avatar reynadi531 avatar ryanrw avatar saichandra2896 avatar siddhant-k-code avatar surajat17 avatar victormagalhaess avatar vyasriday avatar yanagiragi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

js-tidbits's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.