locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
25 lines (24 loc) • 925 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prev = prev;
const _arrayPointers_ts_1 = require("../_helpers/_arrayPointers.js");
function prev(arr) {
// discuss at: https://locutus.io/php/prev/
// parity verified: PHP 8.3
// original by: Brett Zamir (https://brett-zamir.me)
// note 1: Uses global: locutus to store the array pointer
// example 1: var $transport = ['foot', 'bike', 'car', 'plane']
// example 1: prev($transport)
// returns 1: false
const state = (0, _arrayPointers_ts_1.getPointerState)(arr, false);
if (!state || state.cursor === 0) {
return false;
}
const previousCursor = state.cursor - 1;
const entry = (0, _arrayPointers_ts_1.getEntryAtCursor)(arr, previousCursor);
if (!entry) {
return false;
}
state.setCursor(previousCursor);
return entry[1];
}