1var prevPermOpt1 = function (arr) {2const n = arr.length;3let i = n - 1;45while (i > 0 && arr[i] >= arr[i - 1]) i--;67if (i === 0) return arr;89const swapIndex = i - 1;10const swapDigit = arr[swapIndex];1112let maxIndex = i;13i = n - 1;1415while (swapIndex < i) {16const currDigit = arr[i];1718if (currDigit < swapDigit && currDigit >= arr[maxIndex]) maxIndex = i;19i--;20}2122[arr[maxIndex], arr[swapIndex]] = [arr[swapIndex], arr[maxIndex]];2324return arr;25};