UNPKG

locutus

Version:

Locutus other languages' standard libraries to JavaScript for fun and educational purposes

25 lines (24 loc) 925 B
"use strict"; 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]; }