function concatMap( fn ) {
			return [].concat( ...this.map( ( item, index ) => {
				let res = fn( item, index );
				return isArray( res ) ? res : [res];
			} ) );
		}
/**
		 * Maps the array and concatenates the results.
		 * @param {ArrayCallback} fn The mapper.
		 * @returns {Array} The mapped and concatenated result.
		 * @memberof XtraUtils.Array#
		 */
Maps the array and concatenates the results.
@param {ArrayCallback} fn The mapper.
@returns {Array} The mapped and concatenated result.
Maps the array and concatenates the results . @param { ArrayCallback } fn The mapper . @returns { Array } The mapped and concatenated result .
function concatMap( fn ) {
			return [].concat( ...this.map( ( item, index ) => {
				let res = fn( item, index );
				return isArray( res ) ? res : [res];
			} ) );
		}
function concatMap ( fn ) { return [ ] . concat ( ... this . map ( ( item , index ) => { let res = fn ( item , index ) ; return isArray ( res ) ? res : [ res ] ; } ) ) ; }
Maps the array and concatenates the results.
Maps the array and concatenates the results .