npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

linear-array

v2.1.0

Published

Returns an array filed with linearly increasing numbers, starting from 0 up to the given value - 1 (without offset), or from 1 to the value itself (with offset).

Downloads

19

Readme

linear-array

Javascript / Node.js utility library. Returns a set of utility functions, available through the lineArr namespace, which serve to generate arrays populated with sequences such as natural or stepWithOffset sequence, and to check if an array is a sequence of a certain type (like a natural sequence [0,1,2,3,4]).

Install

There are 2 ways to install and use the library.

  1. npm
$ npm install --save linear-array
  1. import with a <script> tag
<script type="module" src="https://unpkg.com/[email protected]"></script>

Importing and using in project

Since this package can be used on the client side, as UMD or ES6 module, and server side, as CommonJS module, there are 2 ways to import it into your .js file:

  • CommonJS
const lineArr = require('linear-array');

// ...

linear.isSeqNaturalNumbers([1, 2, 3]); // false
  • ES6
import {
  isSeqNaturalNumbers,
  fillSeqNaturalNumbers,
  fillStepSequenceWithOffset,
  isStepSequenceWithOffset,
} from 'linear-array';

// ...

isSeqNaturalNumbers([0, 1, 2, 3]); // true

// OR

import * as lineArr from 'linear-array';

// ...

lineArr.isSeqNaturalNumbers([0, 1, 2, 3]); // true
  • UMD

If you imported the linear-array library with the <script> tag it will be attached to the globally available window object.

That's why you can use the module directly in your code by referencing the lineArr module directly

<!-- index.html -->
<html>
  <head>
    <!--  -->
  </head>
  <body>
    <script src="https://unpkg.com/[email protected]"></script>
    <script src="custom.js"></script>
  </body>
</html>
// custom.js

lineArr.isStepSequenceWithOffset([1, 2, 3]); // false

Usage

Currently, there are 4 methods available in the package.

Based on the differences in their input and output data types, they can be divided into 2 categories;

  1. inputs / arguments are finite integers, the output value is a filled array of finite integers sorted in an increasing order according to a specific pattern
  2. input / argument is an array of finite integers, and the output value is a boolean which indicates it the given array conforms to a specific pattern

But both categories operate on the same pattern of data types, and these patterns can be categorized in a mathematical sense as Sequences.

But, repetition of numbers in the arrays is not allowed.

Sequence of natural numbers

fillSeqNaturalNumbers (limiter: number, [includeLast = false]: boolean) => number[]

fillSeqNaturalNumbers(limiter, inludeLast?) === [0, 1, 2, 3, ... , includeLast ? limiter : (limiter - 1)]

(0) -> []

(7) -> [0, 1, 2, 3, 4, 5, 6]

(7, true) -> [0, 1, 2, 3, 4, 5, 6, 7]

isSeqNaturalNumbers(arr: number[]) => boolean

isSeqNaturalNumbers(arr) === true || false

([]) -> false

([0]) -> true

([0,1,2,3,4]) -> true

([2,3,4,5,6]) -> false

([0,1,2,3,5]) -> false

Sequence of numbers with a specified fixed step and offset

fillStepSequenceWithOffset (limiter: number, [step = 1]: number, [offset = 0]: number) => number[]

fillStepSequenceWithOffset(limiter, step?, offset?) === [0+offset, step + offset, 2*step + offset, ..., (limiter - 1)*step + offset]

(0) -> []

(0,1,1) -> []

(1,1,1) -> [1]

(5) -> [0, 1, 2, 3, 4]

(5,1,3) -> [3, 4, 5, 6, 7]

(5,3) -> [0, 3, 6, 9, 12]

(5,2,2) -> [2, 4, 6, 8, 10]

isStepSequenceWithOffset (arr: number[], [step = 1]: number, [offset = 0]: number) => boolean

isStepSequenceWithOffset(arr, step?, offset?) === true || false

([]) -> false

([0]) -> true

([0],1,1) -> false

([0,1,2,3,4]) -> true

([0,1,2,3,4], 2) -> false

([0,1,2,3,4], 1, 1) -> false

([1,2,3,4,5], 1, 1) -> true

([6,9,12,15,18], 3, 6) -> true

([5,9,12,15,19], 3, 6) -> false

Release history

2.0.0.

BREAKING CHANGES:

The linearArray method no longer exists and it is not imported directly from the library.

The closes equivalent to the old linearArray method is now fillSeqNaturalNumbers

NEW FEATURES:

This update has 4 new methods:

  • fillSeqNaturalNumbers

  • isSeqNaturalNumbers

  • fillStepSequenceWithOffset

  • isStepSequenceWithOffset

See the Usage section on what they are and how they are used.

About

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:

$ npm install && npm test

Contributors ✨

Many thanks goes to these people for helping me maintain and upgrade the project:

Author

Ivan Spoljaric

License

Copyright © 2020, Ivan Spoljaric. Released under the MIT License.