linear-array v2.1.0
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.
$ npm install --save linear-array- import with a
<script>tag
<script type="module" src="https://unpkg.com/linear-array@2.0.0"></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]); // falseES6
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]); // trueUMD
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/linear-array@2.0.0"></script>
<script src="custom.js"></script>
</body>
</html>// custom.js
lineArr.isStepSequenceWithOffset([1, 2, 3]); // falseUsage
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;
- 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
- 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]) -> falseSequence 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) -> falseRelease 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:
fillSeqNaturalNumbersisSeqNaturalNumbersfillStepSequenceWithOffsetisStepSequenceWithOffset
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 testContributors ✨
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.