Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function compressed(arr) {
- const sortedArr = arr.sort((a, b) => a - b);
- let result = "";
- let isAdding = false;
- let latestLoop = false;
- for (let i = 0; i < sortedArr.length; i++) {
- const resultElement = sortedArr[i];
- const nextResult = sortedArr[i + 1];
- if ( nextResult === undefined) {
- latestLoop = true;
- result += resultElement;
- }
- if (resultElement + 1 === nextResult && !isAdding && !latestLoop) { // the first init
- result += resultElement;
- result += "-";
- isAdding = true;
- }
- if (isAdding && resultElement + 1 !== nextResult && !latestLoop) { // last element
- result += resultElement;
- result += ",";
- isAdding = false;
- }
- if (!isAdding && resultElement + 1 !== nextResult && !latestLoop) {
- result += resultElement;
- result += ",";
- }
- }
- return result;
- }
- console.log(compressed([3, 2, 1, 5, 6, -1, 10]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement