summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/array/array_slice.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/array/array_slice.js')
-rw-r--r--node_modules/locutus/php/array/array_slice.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/node_modules/locutus/php/array/array_slice.js b/node_modules/locutus/php/array/array_slice.js
deleted file mode 100644
index 0d90d80..0000000
--- a/node_modules/locutus/php/array/array_slice.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict';
-
-module.exports = function array_slice(arr, offst, lgth, preserveKeys) {
- // eslint-disable-line camelcase
- // discuss at: http://locutus.io/php/array_slice/
- // original by: Brett Zamir (http://brett-zamir.me)
- // input by: Brett Zamir (http://brett-zamir.me)
- // bugfixed by: Kevin van Zonneveld (http://kvz.io)
- // note 1: Relies on is_int because !isNaN accepts floats
- // example 1: array_slice(["a", "b", "c", "d", "e"], 2, -1)
- // returns 1: [ 'c', 'd' ]
- // example 2: array_slice(["a", "b", "c", "d", "e"], 2, -1, true)
- // returns 2: {2: 'c', 3: 'd'}
-
- var isInt = require('../var/is_int');
-
- /*
- if ('callee' in arr && 'length' in arr) {
- arr = Array.prototype.slice.call(arr);
- }
- */
-
- var key = '';
-
- if (Object.prototype.toString.call(arr) !== '[object Array]' || preserveKeys && offst !== 0) {
- // Assoc. array as input or if required as output
- var lgt = 0;
- var newAssoc = {};
- for (key in arr) {
- lgt += 1;
- newAssoc[key] = arr[key];
- }
- arr = newAssoc;
-
- offst = offst < 0 ? lgt + offst : offst;
- lgth = lgth === undefined ? lgt : lgth < 0 ? lgt + lgth - offst : lgth;
-
- var assoc = {};
- var start = false;
- var it = -1;
- var arrlgth = 0;
- var noPkIdx = 0;
-
- for (key in arr) {
- ++it;
- if (arrlgth >= lgth) {
- break;
- }
- if (it === offst) {
- start = true;
- }
- if (!start) {
- continue;
- }++arrlgth;
- if (isInt(key) && !preserveKeys) {
- assoc[noPkIdx++] = arr[key];
- } else {
- assoc[key] = arr[key];
- }
- }
- // Make as array-like object (though length will not be dynamic)
- // assoc.length = arrlgth;
- return assoc;
- }
-
- if (lgth === undefined) {
- return arr.slice(offst);
- } else if (lgth >= 0) {
- return arr.slice(offst, offst + lgth);
- } else {
- return arr.slice(offst, lgth);
- }
-};
-//# sourceMappingURL=array_slice.js.map \ No newline at end of file