@maxedgington/lotide
v1.0.0
Published
This package provides a collection of utility functions for handling and manipulating arrays and objects in JavaScript. Functions include 'head', 'tail', 'middle' to handle arrays; 'countLetters', 'findKey', 'letterPositions' to process strings; 'eqObject
Downloads
1
Readme
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.
Usage
Install it:
npm install @maxedgington/lotide
Require it:
const _ = require('@maxedgington/lotide');
Call it:
const results = _.tail([1, 2, 3]) // => [2, 3]
Documentation
The following functions are currently implemented:
head(arr)
: "This code defines a function 'head' that returns the first element of a given array or 'undefined' if the array is empty."tail(arr)
: "This code defines a function 'tail' that returns a new array containing all elements of the given array except the first one, or 'undefined' if the array is empty."middle(arr)
: "This code defines a function 'middle' that returns an array containing the middle elements of a given array, or an empty array if the given array contains two or fewer elements."countLetters(str)
: "This code defines a function 'countLetters' that takes a string, converts it to lowercase, and returns an object where each key is a letter from the string and its value is an array of indices representing the positions where the letter appears in the string; spaces are ignored."countOnly(allItems, itemsToCount)
: "This code defines a function 'countOnly' that takes an array of items and an object with items to count, then returns an object representing the count of each item in the 'itemsToCount' object that appears in the 'allItems' array."eqObjects(object1, object2)
: "This code defines a function 'eqObjects' that compares two objects for equality, including checking for equal numbers of keys, key names, and corresponding key values, even when those values are arrays."eqArrays(a, b)
: "This code defines a function 'eqArrays' that checks whether two arrays 'a' and 'b' contain the same values in the same order and returns true if they do, false otherwise."findKey(obj, callback)
: "This code defines a function 'findKey' that takes an object and a callback function as arguments, then returns the first key for which the callback returns a truthy value."findKeyByValue(object, value)
: "This code defines a function 'findKeyByValue' that takes an object and a value as arguments, and returns the first key which corresponds to the given value."letterPositions(str)
: "This code defines a function 'letterPositions' that takes a string, converts it to lowercase, and returns an object where each key is a letter from the string and its value is an array of indices representing the positions where the letter appears in the string; spaces are ignored."map(array, callback)
: "This code defines a function 'map' that takes an array and a callback function, applies the callback function to each element of the array, and returns a new array of the results."takeUntil(array, callback)
: "This code defines a function 'takeUntil' that takes an array and a callback function, then returns a new array with elements from the start of the original array up to (but not including) the first element for which the callback returns a truthy value."without(source, itemsToRemove)
: "This code defines a function 'without' that takes a source array and an array of items to remove, then returns a new array that is a copy of the source array with the last item in the items to remove array removed, and specifically checks if any item in the items to remove array is a string."