| @@ 1-57 (lines=57) @@ | ||
| 1 | module.exports = function end (arr) { |
|
| 2 | // discuss at: https://locutus.io/php/end/ |
|
| 3 | // original by: Kevin van Zonneveld (https://kvz.io) |
|
| 4 | // bugfixed by: Legaev Andrey |
|
| 5 | // revised by: J A R |
|
| 6 | // revised by: Brett Zamir (https://brett-zamir.me) |
|
| 7 | // improved by: Kevin van Zonneveld (https://kvz.io) |
|
| 8 | // improved by: Kevin van Zonneveld (https://kvz.io) |
|
| 9 | // note 1: Uses global: locutus to store the array pointer |
|
| 10 | // example 1: end({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}) |
|
| 11 | // returns 1: 'Zonneveld' |
|
| 12 | // example 2: end(['Kevin', 'van', 'Zonneveld']) |
|
| 13 | // returns 2: 'Zonneveld' |
|
| 14 | ||
| 15 | var $global = (typeof window !== 'undefined' ? window : global) |
|
| 16 | $global.$locutus = $global.$locutus || {} |
|
| 17 | var $locutus = $global.$locutus |
|
| 18 | $locutus.php = $locutus.php || {} |
|
| 19 | $locutus.php.pointers = $locutus.php.pointers || [] |
|
| 20 | var pointers = $locutus.php.pointers |
|
| 21 | ||
| 22 | var indexOf = function (value) { |
|
| 23 | for (var i = 0, length = this.length; i < length; i++) { |
|
| 24 | if (this[i] === value) { |
|
| 25 | return i |
|
| 26 | } |
|
| 27 | } |
|
| 28 | return -1 |
|
| 29 | } |
|
| 30 | ||
| 31 | if (!pointers.indexOf) { |
|
| 32 | pointers.indexOf = indexOf |
|
| 33 | } |
|
| 34 | if (pointers.indexOf(arr) === -1) { |
|
| 35 | pointers.push(arr, 0) |
|
| 36 | } |
|
| 37 | var arrpos = pointers.indexOf(arr) |
|
| 38 | if (Object.prototype.toString.call(arr) !== '[object Array]') { |
|
| 39 | var ct = 0 |
|
| 40 | var val |
|
| 41 | for (var k in arr) { |
|
| 42 | ct++ |
|
| 43 | val = arr[k] |
|
| 44 | } |
|
| 45 | if (ct === 0) { |
|
| 46 | // Empty |
|
| 47 | return false |
|
| 48 | } |
|
| 49 | pointers[arrpos + 1] = ct - 1 |
|
| 50 | return val |
|
| 51 | } |
|
| 52 | if (arr.length === 0) { |
|
| 53 | return false |
|
| 54 | } |
|
| 55 | pointers[arrpos + 1] = arr.length - 1 |
|
| 56 | return arr[pointers[arrpos + 1]] |
|
| 57 | } |
|
| 58 | ||
| @@ 1-51 (lines=51) @@ | ||
| 1 | module.exports = function next (arr) { |
|
| 2 | // discuss at: https://locutus.io/php/next/ |
|
| 3 | // original by: Brett Zamir (https://brett-zamir.me) |
|
| 4 | // note 1: Uses global: locutus to store the array pointer |
|
| 5 | // example 1: var $transport = ['foot', 'bike', 'car', 'plane'] |
|
| 6 | // example 1: next($transport) |
|
| 7 | // example 1: next($transport) |
|
| 8 | // returns 1: 'car' |
|
| 9 | ||
| 10 | var $global = (typeof window !== 'undefined' ? window : global) |
|
| 11 | $global.$locutus = $global.$locutus || {} |
|
| 12 | var $locutus = $global.$locutus |
|
| 13 | $locutus.php = $locutus.php || {} |
|
| 14 | $locutus.php.pointers = $locutus.php.pointers || [] |
|
| 15 | var pointers = $locutus.php.pointers |
|
| 16 | ||
| 17 | var indexOf = function (value) { |
|
| 18 | for (var i = 0, length = this.length; i < length; i++) { |
|
| 19 | if (this[i] === value) { |
|
| 20 | return i |
|
| 21 | } |
|
| 22 | } |
|
| 23 | return -1 |
|
| 24 | } |
|
| 25 | ||
| 26 | if (!pointers.indexOf) { |
|
| 27 | pointers.indexOf = indexOf |
|
| 28 | } |
|
| 29 | if (pointers.indexOf(arr) === -1) { |
|
| 30 | pointers.push(arr, 0) |
|
| 31 | } |
|
| 32 | var arrpos = pointers.indexOf(arr) |
|
| 33 | var cursor = pointers[arrpos + 1] |
|
| 34 | if (Object.prototype.toString.call(arr) !== '[object Array]') { |
|
| 35 | var ct = 0 |
|
| 36 | for (var k in arr) { |
|
| 37 | if (ct === cursor + 1) { |
|
| 38 | pointers[arrpos + 1] += 1 |
|
| 39 | return arr[k] |
|
| 40 | } |
|
| 41 | ct++ |
|
| 42 | } |
|
| 43 | // End |
|
| 44 | return false |
|
| 45 | } |
|
| 46 | if (arr.length === 0 || cursor === (arr.length - 1)) { |
|
| 47 | return false |
|
| 48 | } |
|
| 49 | pointers[arrpos + 1] += 1 |
|
| 50 | return arr[pointers[arrpos + 1]] |
|
| 51 | } |
|
| 52 | ||
| @@ 1-50 (lines=50) @@ | ||
| 1 | module.exports = function reset (arr) { |
|
| 2 | // discuss at: https://locutus.io/php/reset/ |
|
| 3 | // original by: Kevin van Zonneveld (https://kvz.io) |
|
| 4 | // bugfixed by: Legaev Andrey |
|
| 5 | // revised by: Brett Zamir (https://brett-zamir.me) |
|
| 6 | // note 1: Uses global: locutus to store the array pointer |
|
| 7 | // example 1: reset({0: 'Kevin', 1: 'van', 2: 'Zonneveld'}) |
|
| 8 | // returns 1: 'Kevin' |
|
| 9 | ||
| 10 | var $global = (typeof window !== 'undefined' ? window : global) |
|
| 11 | $global.$locutus = $global.$locutus || {} |
|
| 12 | var $locutus = $global.$locutus |
|
| 13 | $locutus.php = $locutus.php || {} |
|
| 14 | $locutus.php.pointers = $locutus.php.pointers || [] |
|
| 15 | var pointers = $locutus.php.pointers |
|
| 16 | ||
| 17 | var indexOf = function (value) { |
|
| 18 | for (var i = 0, length = this.length; i < length; i++) { |
|
| 19 | if (this[i] === value) { |
|
| 20 | return i |
|
| 21 | } |
|
| 22 | } |
|
| 23 | return -1 |
|
| 24 | } |
|
| 25 | ||
| 26 | if (!pointers.indexOf) { |
|
| 27 | pointers.indexOf = indexOf |
|
| 28 | } |
|
| 29 | if (pointers.indexOf(arr) === -1) { |
|
| 30 | pointers.push(arr, 0) |
|
| 31 | } |
|
| 32 | var arrpos = pointers.indexOf(arr) |
|
| 33 | if (Object.prototype.toString.call(arr) !== '[object Array]') { |
|
| 34 | for (var k in arr) { |
|
| 35 | if (pointers.indexOf(arr) === -1) { |
|
| 36 | pointers.push(arr, 0) |
|
| 37 | } else { |
|
| 38 | pointers[arrpos + 1] = 0 |
|
| 39 | } |
|
| 40 | return arr[k] |
|
| 41 | } |
|
| 42 | // Empty |
|
| 43 | return false |
|
| 44 | } |
|
| 45 | if (arr.length === 0) { |
|
| 46 | return false |
|
| 47 | } |
|
| 48 | pointers[arrpos + 1] = 0 |
|
| 49 | return arr[pointers[arrpos + 1]] |
|
| 50 | } |
|
| 51 | ||
| @@ 1-49 (lines=49) @@ | ||
| 1 | module.exports = function prev (arr) { |
|
| 2 | // discuss at: https://locutus.io/php/prev/ |
|
| 3 | // original by: Brett Zamir (https://brett-zamir.me) |
|
| 4 | // note 1: Uses global: locutus to store the array pointer |
|
| 5 | // example 1: var $transport = ['foot', 'bike', 'car', 'plane'] |
|
| 6 | // example 1: prev($transport) |
|
| 7 | // returns 1: false |
|
| 8 | ||
| 9 | var $global = (typeof window !== 'undefined' ? window : global) |
|
| 10 | $global.$locutus = $global.$locutus || {} |
|
| 11 | var $locutus = $global.$locutus |
|
| 12 | $locutus.php = $locutus.php || {} |
|
| 13 | $locutus.php.pointers = $locutus.php.pointers || [] |
|
| 14 | var pointers = $locutus.php.pointers |
|
| 15 | ||
| 16 | var indexOf = function (value) { |
|
| 17 | for (var i = 0, length = this.length; i < length; i++) { |
|
| 18 | if (this[i] === value) { |
|
| 19 | return i |
|
| 20 | } |
|
| 21 | } |
|
| 22 | return -1 |
|
| 23 | } |
|
| 24 | ||
| 25 | if (!pointers.indexOf) { |
|
| 26 | pointers.indexOf = indexOf |
|
| 27 | } |
|
| 28 | var arrpos = pointers.indexOf(arr) |
|
| 29 | var cursor = pointers[arrpos + 1] |
|
| 30 | if (pointers.indexOf(arr) === -1 || cursor === 0) { |
|
| 31 | return false |
|
| 32 | } |
|
| 33 | if (Object.prototype.toString.call(arr) !== '[object Array]') { |
|
| 34 | var ct = 0 |
|
| 35 | for (var k in arr) { |
|
| 36 | if (ct === cursor - 1) { |
|
| 37 | pointers[arrpos + 1] -= 1 |
|
| 38 | return arr[k] |
|
| 39 | } |
|
| 40 | ct++ |
|
| 41 | } |
|
| 42 | // Shouldn't reach here |
|
| 43 | } |
|
| 44 | if (arr.length === 0) { |
|
| 45 | return false |
|
| 46 | } |
|
| 47 | pointers[arrpos + 1] -= 1 |
|
| 48 | return arr[pointers[arrpos + 1]] |
|
| 49 | } |
|
| 50 | ||
| @@ 1-44 (lines=44) @@ | ||
| 1 | module.exports = function current (arr) { |
|
| 2 | // discuss at: https://locutus.io/php/current/ |
|
| 3 | // original by: Brett Zamir (https://brett-zamir.me) |
|
| 4 | // note 1: Uses global: locutus to store the array pointer |
|
| 5 | // example 1: var $transport = ['foot', 'bike', 'car', 'plane'] |
|
| 6 | // example 1: current($transport) |
|
| 7 | // returns 1: 'foot' |
|
| 8 | ||
| 9 | var $global = (typeof window !== 'undefined' ? window : global) |
|
| 10 | $global.$locutus = $global.$locutus || {} |
|
| 11 | var $locutus = $global.$locutus |
|
| 12 | $locutus.php = $locutus.php || {} |
|
| 13 | $locutus.php.pointers = $locutus.php.pointers || [] |
|
| 14 | var pointers = $locutus.php.pointers |
|
| 15 | ||
| 16 | var indexOf = function (value) { |
|
| 17 | for (var i = 0, length = this.length; i < length; i++) { |
|
| 18 | if (this[i] === value) { |
|
| 19 | return i |
|
| 20 | } |
|
| 21 | } |
|
| 22 | return -1 |
|
| 23 | } |
|
| 24 | if (!pointers.indexOf) { |
|
| 25 | pointers.indexOf = indexOf |
|
| 26 | } |
|
| 27 | if (pointers.indexOf(arr) === -1) { |
|
| 28 | pointers.push(arr, 0) |
|
| 29 | } |
|
| 30 | var arrpos = pointers.indexOf(arr) |
|
| 31 | var cursor = pointers[arrpos + 1] |
|
| 32 | if (Object.prototype.toString.call(arr) === '[object Array]') { |
|
| 33 | return arr[cursor] || false |
|
| 34 | } |
|
| 35 | var ct = 0 |
|
| 36 | for (var k in arr) { |
|
| 37 | if (ct === cursor) { |
|
| 38 | return arr[k] |
|
| 39 | } |
|
| 40 | ct++ |
|
| 41 | } |
|
| 42 | // Empty |
|
| 43 | return false |
|
| 44 | } |
|
| 45 | ||