scrimba
Note at 0:56
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Note at 0:56
AboutCommentsNotes
Note at 0:56
Expand for more info
main.js
run
preview
console
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);
});
});
Console
"result 1: "
,
3
,
"result 2: "
,
8
,
/index.html
LIVE