based-array
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

basedArray 1

A correct and based array implementation. 1-based indexing. obviously.

Inspired by Why you're wrong about 0-based indexing by @tjdevries

Install

npm install --save based-array
yarn add based-array
pnpm add based-array

Use

import { BasedArray } from "based-array";

const funkyReduce = (arr: number[]) => {
  return arr.reduce((accum, item, index) => {
    return accum + item * index;
  }, 0);
};

let array = new BasedArray<number>(5).fill(1);
console.log(array[1]);
// 1
console.log(funkyReduce(array));
// 15

array = BasedArray.from([1, 2, 3, 4, 5]);
console.log(array[1]);
// 1
console.log(funkyReduce(array));
// 55

Strict mode

import { BasedArray } from "based-array";

let array = BasedArray.from([1, 2, 3, 4, 5]);
console.log(array[1]);
// 1
console.log(array[0]);
// undefined
// console.warn: you are counting from zero

BasedArray.strict();

array = BasedArray.from([1, 2, 3, 4, 5]);
console.log(array[1]);
// 1
console.log(array[0]);
// Throws error: CountingFromZeroError

Testing

Every based array method is tested against its vanilla counterpart in a thrilling batte over in tests/vanilla-vs.spec.

The example above is tested in tests/readme-example.spec.

Performance

You can run a simple performance test.

➜  based-array git:(main) ✗ npm run perf

Starting performance test with 10,000 items.

Vanilla: 0.809ms
Based: 0.657ms
Vanilla: 0.524ms
Based: 0.548ms

Finished performance test.

Readme

Keywords

none

Package Sidebar

Install

npm i based-array

Weekly Downloads

7

Version

1.0.6

License

ISC

Unpacked Size

19.1 kB

Total Files

11

Last publish

Collaborators

  • lukeeeebennett