* Maps an array. If the mapped value is an array, it is spread into the result. * * @param array The array to map. * @param mapfn The callback used to map the result into one or more values.
(array, mapfn)
| 696 | * @param mapfn The callback used to map the result into one or more values. |
| 697 | */ |
| 698 | function flatMap(array, mapfn) { |
| 699 | var result; |
| 700 | if (array) { |
| 701 | for (var i = 0; i < array.length; i++) { |
| 702 | var v = mapfn(array[i], i); |
| 703 | if (v) { |
| 704 | if (isArray(v)) { |
| 705 | result = addRange(result, v); |
| 706 | } |
| 707 | else { |
| 708 | result = append(result, v); |
| 709 | } |
| 710 | } |
| 711 | } |
| 712 | } |
| 713 | return result || ts.emptyArray; |
| 714 | } |
| 715 | ts.flatMap = flatMap; |
| 716 | function flatMapToMutable(array, mapfn) { |
| 717 | var result = []; |