Skip to content

Instantly share code, notes, and snippets.

@jtomaszewski
Created October 16, 2018 16:02
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 jtomaszewski/43b4d259739a06bbb98f351276e4872e to your computer and use it in GitHub Desktop.
Save jtomaszewski/43b4d259739a06bbb98f351276e4872e to your computer and use it in GitHub Desktop.
flatten = array => {
return array.reduce((sum, x) => {
if (Array.isArray(x)) {
return [...sum, ...flatten(x)];
} else {
return [...sum, x];
}
}, [])
};
assertEq = (a,b) => {
if (`${a}` !== `${b}`) {
throw `${a} !== ${b}`;
}
};
assertEq( flatten([]) , [] );
assertEq( flatten([1]) , [1] );
assertEq( flatten([1,2]) , [1,2] );
assertEq( flatten([1,[2]]) , [1,2] );
assertEq( flatten([1,[2],[[],[],[]]]) , [1,2] );
assertEq( flatten([[1,2,[3]],4]) , [1,2,3,4] );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment