foop
Version:
interfaces that describe their intentions.
33 lines (31 loc) • 2.64 kB
JavaScript
/**
* @desc flatten multi-dimensional arrays in 1 line
* @since 4.0.0
* @memberOf array
*
* @param {Array<Array | any>} x array(s) to flatten
* @return {Array<any>} flattened arrays
*
* {@link https://stackoverflow.com/questions/10865025/merge-flatten-an-array-of-arrays-in-javascript stack-overflow-flatten}
* {@link https://github.com/andrewplummer/Sugar/blob/master/lib/array.js#L202 sugar-flatten}
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L527 underscore-flatten}
* @see {@link underscore-flatten}
* @see {@link sugar-flatten}
* @see {@link stack-overflow-flatten}
*
* @example
*
* flatten([[1], [2]])
* //=> [1, 2]
* flatten([[1], 2])
* //=> [1, 2]
* flatten(1)
* //=> [1]
*
*/
module.exports = function (x) { return [].concat.apply([], x); }
// function flatten(arr) {
// const flat = [].concat(...arr)
// return flat.some(Array.isArray) ? flatten(flat) : flat
// }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlbi5qcyIsInNvdXJjZXMiOlsiZmxhdHRlbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjIGZsYXR0ZW4gbXVsdGktZGltZW5zaW9uYWwgYXJyYXlzIGluIDEgbGluZVxuICogQHNpbmNlIDQuMC4wXG4gKiBAbWVtYmVyT2YgYXJyYXlcbiAqXG4gKiBAcGFyYW0gIHtBcnJheTxBcnJheSB8IGFueT59IHggYXJyYXkocykgdG8gZmxhdHRlblxuICogQHJldHVybiB7QXJyYXk8YW55Pn0gZmxhdHRlbmVkIGFycmF5c1xuICpcbiAqIHtAbGluayBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDg2NTAyNS9tZXJnZS1mbGF0dGVuLWFuLWFycmF5LW9mLWFycmF5cy1pbi1qYXZhc2NyaXB0IHN0YWNrLW92ZXJmbG93LWZsYXR0ZW59XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FuZHJld3BsdW1tZXIvU3VnYXIvYmxvYi9tYXN0ZXIvbGliL2FycmF5LmpzI0wyMDIgc3VnYXItZmxhdHRlbn1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNTI3IHVuZGVyc2NvcmUtZmxhdHRlbn1cbiAqIEBzZWUge0BsaW5rIHVuZGVyc2NvcmUtZmxhdHRlbn1cbiAqIEBzZWUge0BsaW5rIHN1Z2FyLWZsYXR0ZW59XG4gKiBAc2VlIHtAbGluayBzdGFjay1vdmVyZmxvdy1mbGF0dGVufVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgZmxhdHRlbihbWzFdLCBbMl1dKVxuICogICAgLy89PiBbMSwgMl1cbiAqICAgIGZsYXR0ZW4oW1sxXSwgMl0pXG4gKiAgICAvLz0+IFsxLCAyXVxuICogICAgZmxhdHRlbigxKVxuICogICAgLy89PiBbMV1cbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0geCA9PiBbXS5jb25jYXQuYXBwbHkoW10sIHgpXG5cbi8vIGZ1bmN0aW9uIGZsYXR0ZW4oYXJyKSB7XG4vLyAgIGNvbnN0IGZsYXQgPSBbXS5jb25jYXQoLi4uYXJyKVxuLy8gICByZXR1cm4gZmxhdC5zb21lKEFycmF5LmlzQXJyYXkpID8gZmxhdHRlbihmbGF0KSA6IGZsYXRcbi8vIH1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQUEsQ0FBQyxDQUFBLENBQUMsQUFBRyxTQUFBLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBQTs7Ozs7OyJ9