node-arrayq
Array query methods for Node.js
Usage
npm install --save arrayq
TypeScript - Extending Array prototype
import 'arrayq';
[1, 2, 3, 4, 5].qIntersect([3, 4, 5, 6, 7]).qSame([3, 4, 5]) === true
TypeScript - Import
import { intersect, same } from 'arrayq/lib';
same(intersect([1, 2, 3, 4, 5], [3, 4, 5, 6, 7]), [3, 4, 5]) === true
ES6 - Extending Array prototype
require('arrayq/es6/prototype')
[1, 2, 3, 4, 5].qIntersect([3, 4, 5, 6, 7]).qSame([3, 4, 5]) === true
ES6 - Require
const { same, intersect } = require('arrayq/es6');
same(intersect([1, 2, 3, 4, 5], [3, 4, 5, 6, 7]), [3, 4, 5]) === true
Methods
Contains
Check whether the first array contains all items of the right.
[1, 2, 3, 4, 5].qContains([1, 3, 5])
returns true
[1, 2, 3, 4, 5].qContains([4, 5, 6])
returns false
Empty
Same as [].length === 0
[].qEmpty()
returns true
[1].qEmpty()
returns false
First
Returns first (matching) item.
[1, 2, 3, 4, 5].qFirst()
returns 1
[1, 2, 3, 4, 5].qFirst(x => x%2 === 0)
returns 2
Last
Returns last (matching) item.
[1, 2, 3, 4, 5].qLast()
returns 5
[1, 2, 3, 4, 5].qLast(x => x%2 === 0)
returns 4
Intersect
Returns intersection of items from both arrays.
[1, 2, 3, 4, 5].qIntersect([3, 4, 5, 6, 7])
returns [3, 4, 5]
[1, 2, 3].qIntersect([2, 4, 7], (l, r) => l === r/2)
returns [1, 2]
Rotate
Rotates items using the specified offset.
[1, 2, 3, 4, 5].qRotate(1)
returns [5, 1, 2, 3, 4]
[1, 2, 3, 4, 5].qRotate(-1)
returns [2, 3, 4, 5, 1]
Same
Checks equality between two arrays (order is important).
[1, 2, 3].qSame([1, 2, 3])
returns true
[1, 2, 3].qSame([1, 2])
returns false
[1, 2, 3].qSame([2, 4, 6], (l, r) => l === r/2)
returns true