# @adam-marx/lotide

> A mini clone of the Lodash library for learning purposes.

Latest version **1.0.0** (published 2023-01-17) · ISC license · 0 weekly downloads

## Install

```sh
npm install @adam-marx/lotide
pnpm add @adam-marx/lotide
yarn add @adam-marx/lotide
bun add @adam-marx/lotide
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2023-01-17 |
| First published | 2023-01-17 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 19.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Adam Marx |
| Maintainers | adam-marx |

## Links

- npm: https://www.npmjs.com/package/@adam-marx/lotide
- Repository: https://github.com/Adam-Marx/lotide
- Homepage: https://github.com/Adam-Marx/lotide#readme
- Issues: https://github.com/Adam-Marx/lotide/issues
- npm.io page: https://npm.io/package/@adam-marx/lotide

## Recent versions

- 1.0.0 (latest) — 2023-01-17

## README

# Lotide

A mini clone of the [Lodash](https://lodash.com) 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 @adam-marx/lotide`

**Require it:**

`const _ = require('@adam-marx/lotide');`

**Call it:**

`const results = _.tail([1, 2, 3]) // => [2, 3]`

## Documentation

The following functions are currently implemented:

* `head(array)`: Returns the first element of an array.
* `tail(array)`: Returns everything but the first element of an array.
* `middle(array)`: Returns the middle value of an array, if the array is odd it returns the median of the middle two elements.
* `assertArraysEqual(array1, array2)`: Asserts if two arrays are equal to each other and returns a console.log that tells you if the assertation passed or failed.
* `assertEqual(actual, expected)`: Asserts if two values; actual and expected, are equal to each other.
* `assertObjectsEqual(actual, expected)`: Asserts if two objects are equal to each other and logs a pass or fail message.
* `countLetters(sentence)`: Returns the amount of times a letter appears in a string, case sensitive.
* `countOnly(allItems, itemsToCount)`: Counts only the specified items of an array
* `eqArrays(array1, array2)`: Checks if two arrays are equal to one another.
* `eqObjects(object1, object2)`: Checks if two obejcts are equal to one another.
* `findKeyByValue(object, value)`: Finds the key of an object given the key value. 
* `findKey(object, callback)`: Finds the key of an object given a callback function that provides the key value.
* `letterPositions(sentence)`: Returns all the positions by index-value of characters in a string.
* `map`: Higher order function that takes a callback and executes that function on items of an array.
* `takeUntil(array, callback)`: Takes items in an array until the string hits the specified character to stop taking items.
* `without(source, itemsToRemove)`: Returns an array provided without the array values specified by the user.

---
_Source: https://npm.io/package/@adam-marx/lotide · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
