locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
23 lines (22 loc) • 803 B
JavaScript
import { getEntryAtCursor, getPointerState } from "../_helpers/_arrayPointers.js";
export function next(arr) {
// discuss at: https://locutus.io/php/next/
// 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: next($transport)
// example 1: next($transport)
// returns 1: 'car'
const state = getPointerState(arr, true);
if (!state) {
return false;
}
const nextCursor = state.cursor + 1;
const entry = getEntryAtCursor(arr, nextCursor);
if (!entry) {
return false;
}
state.setCursor(nextCursor);
return entry[1];
}