UNPKG

node-vitals

Version:

Do more with less. A simple, high-performing, functional JavaScript library.

57 lines (49 loc) 1.3 kB
/** * ----------------------------------------------------------------------------- * VITALS UNIT TESTS HELPER: sliceArr * ----------------------------------------------------------------------------- * @author Adam Smith <adam@imaginate.life> (https://github.com/imaginate) * @copyright 2017 Adam A Smith <adam@imaginate.life> (https://github.com/imaginate) * * Annotations: * @see [JSDoc3](http://usejsdoc.org) * @see [Closure Compiler JSDoc Syntax](https://developers.google.com/closure/compiler/docs/js-for-compiler) */ 'use strict'; module.exports = sliceArr; /** * @param {(!Object|function)} source * @param {number=} start - [default= 0] * @param {number=} end - [default= source.length] * @return {!Array} */ function sliceArr(source, start, end) { /** @type {!Array} */ var arr; /** @type {number} */ var len; /** @type {number} */ var ii; /** @type {number} */ var i; len = source.length; start = start ? start < 0 ? len + start : start : 0; start = start < 0 ? 0 : start; end = end === undefined || end > len ? len : end < 0 ? len + end : end; if (start >= end) return []; arr = new Array(end - start); ii = start - 1; i = 0; while (++ii < end) { arr[i++] = source[ii]; } return arr; }