1.0.2 • Published 2 years ago

@merwynpatrick/lotide v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Lotide Description

  • A mini clone of the Lodash library

Purpose

BEWARE: This library was published for learning purposes. It is not intended for use in production-grade software.

  • This project was created and published by me as part of my learnings at Lighthouse Labs.

Usage

Install it:

npm i @merwynpatrick/lotide

Require it:

const _ = require('@merwynpatrick/lotide');

Call it:

const results = _.tail([1, 2, 3]) // => [2, 3]

Documentation

  • The following functions are currently implemented:

  • Functions in lotide

    • AssertEqual.js Implementing console.assert function.
    • _.assertEqual("Lighthouse Labs", "Bootcamp") // => ✗ Assertion Failed: Lighthouse Labs !== Bootcamp Logs whether Assertion passed or failed by comparing the 2 arguments.
    • head.js Implementing lodash head function.
    • _.head([5, 6, 7]) // 5 Returns the first element of an array or undefined if array is empty.
    • tail.js Implementing lodash tail function.
    • _.tail(["Hello", "Lighthouse", "Labs"]) // ["Lighthouse", "Labs"] Returns the array exluding the first element.
    • eqArrays.js Implementing function to test if 2 passed arrays are equal. Can compare 2 deeply nested arrays using recursion.
    • _.eqArrays(["1", "2", "3"], ["1", "2", 3]) // false Returns a boolean by comparing 2 arrays.
    • assertArraysEqual.js Use eqArrays function to test equality of 2 arrays using 2 methods: JSON.stringify() or comapring each element of the 2 arrays and using recursion.
    • _.assertArraysEqual(["1", "2", "3"], ["1", "2", "3"]) // => ✓ Assertion Passed: [ '1', '2', '3' ] === [ '1', '2', '3' ] Logs whether Assertion passed or failed by comparing the 2 arrays.
    • without.js Implementing lodash without function.
    • _.without(["hello", "world", "lighthouse"], ["hello"]) // ["world", "lighthouse"] Returns the filtered array by removing the arguments passed. Added more tests in without function and removed error.
    • flatten.js Implementing lodash flatten function.
    • _.flatten([1, [2, 3]]) // [1, 2, 3] Returns the flattened array.
    • middle.js Implementing lodash middle function.
    • _.middle([1, 2, 3]) // [2] Returns an array containing center element/s. If the array length is less than 3, it returns an empty array.
    • countOnly.js
    • _.countOnly(["a", "a", "b"]) // {a: 2, b: 1} This function takes in an array of items and return counts for a specific subset of those items.
    • countLetters.js _.countLetters("LHL") // {L : 2, H: 1} This function is similar to countOnly.js.
    • letterPositions.js _.letterPositions("LHL") // {L : 2, H: 1} This function takes an input string and returns an object with the positions of letters in the string. The positions are zero based and are in an array.
    • findKeyByValue.js _.findKeyByValue({sci_fi: "The Expanse", drama: "The Wire"}, "The Wire") // "drama" This function takes an object and a value as arguments and searches if the object has the key, value pair and returns the corresponding key.
    • eqObjects.js _.eqObjects({ a: "1", b: "2" }, { b: "2", a: "1" }) // true This function takes 2 objects as arguments and returns a boolean value if the key/value pairs are similar.
    • assertObjectsEqual.js _.assertObjectsEqual({ a: "1", b: "2" }, { b: "2", a: "1" }) // ✓ Assertion Passed: { a: '1', b: '2' } === { b: '2', a: '1' } This function leverages on eqObjects and writes a test to show if the assertion passes or fails. There is a mention to use utils.inspect() which converts objects to strings (similar to JSON.stringify()) but hasn't been used. This function logs, doesn't return a value.
    • map.js _.map(["ground", "control"], word => word[0]) // ["g", "c"] This function is our own implementation of Array.map() method which takes an array and a callback function and returns an array subject to the function called on every element of the input array.
    • takeUntil.js _.takeUntil([1, 2, 5, 7, 2, -1, 2, 4, 5], x => x < 0) // [1, 2, 5, 7, 2] This is similar to lowdash takeWhile. TakeUntil function takes an array and callback function and slices the array uptil the callback function condition is evaluated to be false.
    • findKey.js _.findKey({a: { stars: 1 }, b: { stars: 2 }}, x => x.stars === 2) // b This function is similar to findKeyByValue.js but it utlizes a callback function for more flexibility.
  • Tests in a separate folder for more details.

    • Testing using mocha chai. Please run npm install after cloning the repo.
1.0.2

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago