Skip to content

Instantly share code, notes, and snippets.

@Spudley
Created September 10, 2019 22:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Spudley/650e0a9176e090b6888d799ad6f91f28 to your computer and use it in GitHub Desktop.
Save Spudley/650e0a9176e090b6888d799ad6f91f28 to your computer and use it in GitHub Desktop.
Flatten & Sort in JavaScript
(function() {
var flattenAndSort = function(input) {
function flatten(input) {
return input.reduce(function(flattened, currentPart) {
return flattened.concat(Array.isArray(currentPart) ? flatten(currentPart) : currentPart);
}, []);
};
return flatten(input).sort();
}
var output = flattenAndSort( ["gamma", ["alpha", ["beta"]], [[["delta"]]]] );
var expectedOutput = ["alpha", "beta", "delta", "gamma"];
console.log(output);
console.log(expectedOutput);
console.assert(JSON.stringify(output) === JSON.stringify(expectedOutput), 'Failed to match!');
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment