function arrayMaximalAdjacentDifference(nums) {
if (!Array.isArray(nums) || !nums.length) {
throw new Error("Invalid argument");
}
if (nums < 2) return nums[0];
let maxAbsoluteDiff = Math.abs(nums[0] - nums[1]);
const lastIndex = nums.length - 1;
for (let i = 1; i < lastIndex; i += 1) {
const diff = Math.abs(nums[i] - nums[i + 1]);
if (maxAbsoluteDiff < diff) {
maxAbsoluteDiff = diff;
}
}
return maxAbsoluteDiff;
}
/**
* Test Suite
*/
describe('arrayMaximalAdjacentDifference()', () => {
it('returns largest difference between adjacent values', () => {
// arrange
const nums = [2, 4, 1, 0];
// act
const result = arrayMaximalAdjacentDifference(nums);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(3);
});
it('returns largest difference between adjacent values example 2', () => {
// arrange
const nums = [2, 9, 1, 0];
// act
const result = arrayMaximalAdjacentDifference(nums);
// log
console.log("result 2: ", result);
// assert
expect(result).toBe(8);
});
});