function arrayPreviousLess(nums) {
if (nums.length === 0) {
return nums;
}
const previousLess = [-1];
for (let i = 1; i < nums.length; i++) {
let found = false;
for (let j = i - 1; j > -1; j--) {
if (nums[j] < nums[i]) {
previousLess.push(nums[j]);
found = true;
break;
}
}
if (!found) {
previousLess.push(-1);
}
}
return previousLess
}
/**
* Test Suite
*/
describe('arrayPreviousLess()', () => {
it('shift previous postions from the left to a smaller value or store -1', () => {
// arrange
const nums = [3, 5, 2, 4, 5];
// act
const result = arrayPreviousLess(nums);
// log
console.log("result: ", result);
// assert
expect(result).toEqual([-1, 3, -1, 2, 4]);
});
});