JSFiddle - React, Tailwind, and code Playground
by oktaviardi pratama
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
JavaScript
$(document).ready(function() {
function print(arr) {
let newVal = [...arr];
let flag;
do {
flag = 0;
let temp = [...newVal]; // Work on a fresh copy each loop
for (let i = 1; i < newVal.length - 1; i++) {
if (newVal[i - 1] < newVal[i] && newVal[i + 1] < newVal[i]) {
temp[i] = newVal[i] - 1;
flag++;
} else if (newVal[i - 1] > newVal[i] && newVal[i + 1] > newVal[i]) {
temp[i] = newVal[i] + 1;
flag++;
}
}
newVal = temp;
} while (flag > 0);
return newVal;
}
console.log(print([1, 6, 3, 4, 3, 5]));
});