Skip to content

kenkneelee/lotide

Repository files navigation

Lotide

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. It includes several simple functions mostly to operate on arrays and objects. Writing Lotide helped to solidify fundamental programming concepts (FOCAL - Functions, Objects, Conditions, Arrays, Loops) and provided practice on writing modular and reusable code.

Usage

Install it:

npm install @kenkneelee/lotide

Require it:

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

Call it:

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

Documentation

The following functions are currently implemented:

Equality and Assertion Functions

  • assertEqual(actual, expected) : prints result of equality comparison between two values to console
  • eqArrays(array1, array2) : returns truthy/falsy result of equality comparison between two input arrays
  • assertArraysEqual(array1, array2) : prints result of array equality comparison to console
  • eqObjects(object1, object2) : returns truthy/falsy result of object equality comparison
  • assertObjectsEqual(object1, object2) : prints result of object equality comparison to console

Array Functions

  • head(array) : returns the first element of an input array
  • tail(array) : returns all but the first element of an input array
  • middle(array) : returns an array of the middle value(s) of an input array
  • flatten(nestedArray) : given nested array, flattens inside arrays and moves them one level up
  • without(source, itemsToRemove) : given a source array and itemsToRemove array, removes all instances of every item in itemsToRemove from source and returns filtered array.

Array and Object Manipulation

  • countLetters(sentence) : given an input sentence, returns an object with key:value pairs corresponding to occurrences of each character
  • countOnly(allItems, itemsToCount) : given an array (allItems) to search and object itemsToCount {key:boolean}, return an object with key:value pairs corresponding to search:occurrences
  • letterPositions(sentence) : Given a sentence, returns an object with key:value pairs corresponding to characters: positions of each occurrence of the character.
  • findKeyByValue(contentList, searchTerm) : given an object to search and a property value, return the name of the first property whose value matches search term

Functions using Callbacks

  • findKey(object, callback): given an object and callback, loop through the object's keys and return first key that returns truthy value from callback. Returns undefined if no matches found.
  • map(array, callback) : given an array and callback, perform the callback function on every element in the array
  • takeUntil(array, callback) : given an array and callback, return new array with all original values until the first value that fulfills callback

About

Smaller, simpler version of lodash made as part of learning about libraries for LHL Web Dev flex bootcamp.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published