/
removeZeroes.js
42 lines (37 loc) · 1.13 KB
/
removeZeroes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Given a non-empty array containing only non-negative integers, return the list with trailing and leading zeroes removed.
// Example:
// > removeZeroes([0, 0, 0, 3, 1, 4, 1, 5, 9, 0, 0, 0, 0])
// > [3, 1, 4, 1, 5, 9]
// > removeZeroes([0, 0, 0])
// > []
// > removeZeroes([8])
// > [8]
const assert = require('assert');
function removeZeroes(arr) {
// copy the array into new variable
let resultArray = [...arr];
let leadingZero = true
let trailingZero = true
// remove leading zeros
while (leadingZero ){
if (resultArray[0] === 0){
resultArray.shift();
} else {
leadingZero = false;
}
}
// remove trailing zeros
while (trailingZero){
if (resultArray[resultArray.length -1] === 0){
// remove trailing zeros
resultArray.pop();
} else {
trailingZero = false;
}
}
console.log(resultArray)
return resultArray;
}
assert.deepEqual(removeZeroes([0, 0, 0, 3, 1, 4, 1, 5, 9, 0, 0, 0, 0]), [3, 1, 4, 1, 5, 9]);
assert.deepEqual(removeZeroes([0, 0, 0]), []);
assert.deepEqual(removeZeroes([8]), [8]);