summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/array/array_slice.js.map
blob: f9e65d07809b0001a110246bc188fe567b31e912 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/array/array_slice.js"],"names":["module","exports","array_slice","arr","offst","lgth","preserveKeys","isInt","require","key","Object","prototype","toString","call","lgt","newAssoc","undefined","assoc","start","it","arrlgth","noPkIdx","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAsBC,GAAtB,EAA2BC,KAA3B,EAAkCC,IAAlC,EAAwCC,YAAxC,EAAsD;AAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,QAAQC,QAAQ,eAAR,CAAZ;;AAEA;;;;;;AAMA,MAAIC,MAAM,EAAV;;AAEA,MAAIC,OAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BV,GAA/B,MAAwC,gBAAxC,IAA6DG,gBAAgBF,UAAU,CAA3F,EAA+F;AAC7F;AACA,QAAIU,MAAM,CAAV;AACA,QAAIC,WAAW,EAAf;AACA,SAAKN,GAAL,IAAYN,GAAZ,EAAiB;AACfW,aAAO,CAAP;AACAC,eAASN,GAAT,IAAgBN,IAAIM,GAAJ,CAAhB;AACD;AACDN,UAAMY,QAAN;;AAEAX,YAASA,QAAQ,CAAT,GAAcU,MAAMV,KAApB,GAA4BA,KAApC;AACAC,WAAOA,SAASW,SAAT,GAAqBF,GAArB,GAA4BT,OAAO,CAAR,GAAaS,MAAMT,IAAN,GAAaD,KAA1B,GAAkCC,IAApE;;AAEA,QAAIY,QAAQ,EAAZ;AACA,QAAIC,QAAQ,KAAZ;AACA,QAAIC,KAAK,CAAC,CAAV;AACA,QAAIC,UAAU,CAAd;AACA,QAAIC,UAAU,CAAd;;AAEA,SAAKZ,GAAL,IAAYN,GAAZ,EAAiB;AACf,QAAEgB,EAAF;AACA,UAAIC,WAAWf,IAAf,EAAqB;AACnB;AACD;AACD,UAAIc,OAAOf,KAAX,EAAkB;AAChBc,gBAAQ,IAAR;AACD;AACD,UAAI,CAACA,KAAL,EAAY;AACV;AACD,SAAEE,OAAF;AACD,UAAIb,MAAME,GAAN,KAAc,CAACH,YAAnB,EAAiC;AAC/BW,cAAMI,SAAN,IAAmBlB,IAAIM,GAAJ,CAAnB;AACD,OAFD,MAEO;AACLQ,cAAMR,GAAN,IAAaN,IAAIM,GAAJ,CAAb;AACD;AACF;AACD;AACA;AACA,WAAOQ,KAAP;AACD;;AAED,MAAIZ,SAASW,SAAb,EAAwB;AACtB,WAAOb,IAAImB,KAAJ,CAAUlB,KAAV,CAAP;AACD,GAFD,MAEO,IAAIC,QAAQ,CAAZ,EAAe;AACpB,WAAOF,IAAImB,KAAJ,CAAUlB,KAAV,EAAiBA,QAAQC,IAAzB,CAAP;AACD,GAFM,MAEA;AACL,WAAOF,IAAImB,KAAJ,CAAUlB,KAAV,EAAiBC,IAAjB,CAAP;AACD;AACF,CArED","file":"array_slice.js","sourcesContent":["module.exports = function array_slice (arr, offst, lgth, preserveKeys) { // eslint-disable-line camelcase\n  //  discuss at: http://locutus.io/php/array_slice/\n  // original by: Brett Zamir (http://brett-zamir.me)\n  //    input by: Brett Zamir (http://brett-zamir.me)\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  //      note 1: Relies on is_int because !isNaN accepts floats\n  //   example 1: array_slice([\"a\", \"b\", \"c\", \"d\", \"e\"], 2, -1)\n  //   returns 1: [ 'c', 'd' ]\n  //   example 2: array_slice([\"a\", \"b\", \"c\", \"d\", \"e\"], 2, -1, true)\n  //   returns 2: {2: 'c', 3: 'd'}\n\n  var isInt = require('../var/is_int')\n\n  /*\n    if ('callee' in arr && 'length' in arr) {\n      arr = Array.prototype.slice.call(arr);\n    }\n  */\n\n  var key = ''\n\n  if (Object.prototype.toString.call(arr) !== '[object Array]' || (preserveKeys && offst !== 0)) {\n    // Assoc. array as input or if required as output\n    var lgt = 0\n    var newAssoc = {}\n    for (key in arr) {\n      lgt += 1\n      newAssoc[key] = arr[key]\n    }\n    arr = newAssoc\n\n    offst = (offst < 0) ? lgt + offst : offst\n    lgth = lgth === undefined ? lgt : (lgth < 0) ? lgt + lgth - offst : lgth\n\n    var assoc = {}\n    var start = false\n    var it = -1\n    var arrlgth = 0\n    var noPkIdx = 0\n\n    for (key in arr) {\n      ++it\n      if (arrlgth >= lgth) {\n        break\n      }\n      if (it === offst) {\n        start = true\n      }\n      if (!start) {\n        continue\n      }++arrlgth\n      if (isInt(key) && !preserveKeys) {\n        assoc[noPkIdx++] = arr[key]\n      } else {\n        assoc[key] = arr[key]\n      }\n    }\n    // Make as array-like object (though length will not be dynamic)\n    // assoc.length = arrlgth;\n    return assoc\n  }\n\n  if (lgth === undefined) {\n    return arr.slice(offst)\n  } else if (lgth >= 0) {\n    return arr.slice(offst, offst + lgth)\n  } else {\n    return arr.slice(offst, lgth)\n  }\n}\n"]}