Skip to content

Instantly share code, notes, and snippets.

@krishnasaga
Last active February 6, 2018 06:49
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save krishnasaga/3d7cd97712e3438581807c584b7b2b6e to your computer and use it in GitHub Desktop.
Save krishnasaga/3d7cd97712e3438581807c584b7b2b6e to your computer and use it in GitHub Desktop.
Flatten Array
var flatten = function(array) {
return array.reduce(function(a,b) {
return a.concat(Array.isArray(b)
? flatten(b)
: [b] );
},[]);
};
var flatten = function(array) {
var flatArray = [];
array.forEach(function(element) {
Array.isArray(element)
? flatArray = flatArray.concat(flatten(element))
: flatArray.push(element);
});
return flatArray;
};
describe('flatten',function(){
it('should flatten the array',function(){
expect(flatten([1,2,3,4])).to.be.an.array().and.to.equal([1,2,3,4]);
expect(flatten([[1,2],[3,4]])).to.be.an.array().and.to.equal([1,2,3,4]);
expect(flatten([1,[2,3],4])).to.be.an.array().and.to.equal([1,2,3,4]);
expect(flatten([1,[2,[3,4],5,6,7]])).to.be.an.array().and.to.equal([1,2,3,4,5,6,7]);
});
});
@krishnasaga
Copy link
Author

download

@vnyv
Copy link

vnyv commented Feb 6, 2018

const flatten = arr => arr.reduce((a,e) => a.concat(Array.isArray(e) ? flatten(e) : e), [])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment