source: node_modules/ramda-adjunct/lib/internal/makeFlat.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.2 KB
RevLine 
[d24f17c]1"use strict";
2
3exports.__esModule = true;
4exports["default"] = void 0;
5var _isArrayLike = _interopRequireDefault(require("../isArrayLike"));
6function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7/**
8 * `makeFlat` is a helper function that returns a one-level or fully recursive
9 * function based on the flag passed in.
10 *
11 * @func makeFlat
12 * @memberOf RA
13 *
14 * @category List
15 * @param {!bool} = should recursively flatten
16 * @param {!Array} = the nested list to be flattened
17 * @return {!Array} = the flattened list
18 * @sig Bool -> List -> List
19 *
20 */
21var makeFlat = function makeFlat(recursive) {
22 return function flatt(list) {
23 var value;
24 var jlen;
25 var j;
26 var result = [];
27 var idx = 0;
28 while (idx < list.length) {
29 if ((0, _isArrayLike["default"])(list[idx])) {
30 value = recursive ? flatt(list[idx]) : list[idx];
31 j = 0;
32 jlen = value.length;
33 while (j < jlen) {
34 result[result.length] = value[j];
35 j += 1;
36 }
37 } else {
38 result[result.length] = list[idx];
39 }
40 idx += 1;
41 }
42 return result;
43 };
44};
45var _default = makeFlat;
46exports["default"] = _default;
Note: See TracBrowser for help on using the repository browser.