summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/array/array_rand.js.map
blob: 8c4d255283d115ed6f848e9f68a07a1f0b693492 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/array/array_rand.js"],"names":["module","exports","array_rand","array","num","keys","Object","isNaN","length","i","j","Math","floor","random","tmp","slice"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,UAAT,CAAqBC,KAArB,EAA4BC,GAA5B,EAAiC;AAAE;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAIC,OAAOC,OAAOD,IAAP,CAAYF,KAAZ,CAAX;;AAEA,MAAI,OAAOC,GAAP,KAAe,WAAf,IAA8BA,QAAQ,IAA1C,EAAgD;AAC9CA,UAAM,CAAN;AACD,GAFD,MAEO;AACLA,UAAM,CAACA,GAAP;AACD;;AAED,MAAIG,MAAMH,GAAN,KAAcA,MAAM,CAApB,IAAyBA,MAAMC,KAAKG,MAAxC,EAAgD;AAC9C,WAAO,IAAP;AACD;;AAED;AACA,OAAK,IAAIC,IAAIJ,KAAKG,MAAL,GAAc,CAA3B,EAA8BC,IAAI,CAAlC,EAAqCA,GAArC,EAA0C;AACxC,QAAIC,IAAIC,KAAKC,KAAL,CAAWD,KAAKE,MAAL,MAAiBJ,IAAI,CAArB,CAAX,CAAR,CADwC,CACI;;AAE5C,QAAIK,MAAMT,KAAKK,CAAL,CAAV;AACAL,SAAKK,CAAL,IAAUL,KAAKI,CAAL,CAAV;AACAJ,SAAKI,CAAL,IAAUK,GAAV;AACD;;AAED,SAAOV,QAAQ,CAAR,GAAYC,KAAK,CAAL,CAAZ,GAAsBA,KAAKU,KAAL,CAAW,CAAX,EAAcX,GAAd,CAA7B;AACD,CA/BD","file":"array_rand.js","sourcesContent":["module.exports = function array_rand (array, num) { // eslint-disable-line camelcase\n  //       discuss at: http://locutus.io/php/array_rand/\n  //      original by: Waldo Malqui Silva (http://waldo.malqui.info)\n  // reimplemented by: Rafał Kukawski\n  //        example 1: array_rand( ['Kevin'], 1 )\n  //        returns 1: '0'\n\n  // By using Object.keys we support both, arrays and objects\n  // which phpjs wants to support\n  var keys = Object.keys(array)\n\n  if (typeof num === 'undefined' || num === null) {\n    num = 1\n  } else {\n    num = +num\n  }\n\n  if (isNaN(num) || num < 1 || num > keys.length) {\n    return null\n  }\n\n  // shuffle the array of keys\n  for (var i = keys.length - 1; i > 0; i--) {\n    var j = Math.floor(Math.random() * (i + 1)) // 0 ≤ j ≤ i\n\n    var tmp = keys[j]\n    keys[j] = keys[i]\n    keys[i] = tmp\n  }\n\n  return num === 1 ? keys[0] : keys.slice(0, num)\n}\n"]}