diff options
Diffstat (limited to 'node_modules/locutus/php/array/range.js')
-rw-r--r-- | node_modules/locutus/php/array/range.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/node_modules/locutus/php/array/range.js b/node_modules/locutus/php/array/range.js new file mode 100644 index 0000000..0bb67a6 --- /dev/null +++ b/node_modules/locutus/php/array/range.js @@ -0,0 +1,49 @@ +"use strict"; + +module.exports = function range(low, high, step) { + // discuss at: http://locutus.io/php/range/ + // original by: Waldo Malqui Silva (http://waldo.malqui.info) + // example 1: range ( 0, 12 ) + // returns 1: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + // example 2: range( 0, 100, 10 ) + // returns 2: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + // example 3: range( 'a', 'i' ) + // returns 3: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'] + // example 4: range( 'c', 'a' ) + // returns 4: ['c', 'b', 'a'] + + var matrix = []; + var iVal; + var endval; + var plus; + var walker = step || 1; + var chars = false; + + if (!isNaN(low) && !isNaN(high)) { + iVal = low; + endval = high; + } else if (isNaN(low) && isNaN(high)) { + chars = true; + iVal = low.charCodeAt(0); + endval = high.charCodeAt(0); + } else { + iVal = isNaN(low) ? 0 : low; + endval = isNaN(high) ? 0 : high; + } + + plus = !(iVal > endval); + if (plus) { + while (iVal <= endval) { + matrix.push(chars ? String.fromCharCode(iVal) : iVal); + iVal += walker; + } + } else { + while (iVal >= endval) { + matrix.push(chars ? String.fromCharCode(iVal) : iVal); + iVal -= walker; + } + } + + return matrix; +}; +//# sourceMappingURL=range.js.map
\ No newline at end of file |