spreadsheet
typeScript/javascript spreadsheet parser, with formulas.
git clone https://git.vogt.world/spreadsheet.git
Log | Files | README.md
← All files
name: dist/Utilities/Filter.js
-rw-r--r--
3007
 1"use strict";
 2exports.__esModule = true;
 3var Errors_1 = require("../Errors");
 4/**
 5 * Static class to help filter down Arrays
 6 */
 7var Filter = /** @class */ (function () {
 8    function Filter() {
 9    }
10    /**
11     * Converts string values in array to 0
12     * @param arr to convert
13     * @returns {Array} array in which all string values have been converted to 0.
14     */
15    Filter.stringValuesToZeros = function (arr) {
16        var toReturn = [];
17        for (var i = 0; i < arr.length; i++) {
18            if (typeof arr[i] === "string") {
19                toReturn.push(0);
20            }
21            else {
22                toReturn.push(arr[i]);
23            }
24        }
25        return toReturn;
26    };
27    /**
28     * Flatten an array of arrays of ...etc.
29     * @param values array of values
30     * @returns {Array} flattened array
31     */
32    Filter.flatten = function (values) {
33        return values.reduce(function (flat, toFlatten) {
34            return flat.concat(Array.isArray(toFlatten) ? Filter.flatten(toFlatten) : toFlatten);
35        }, []);
36    };
37    /**
38     * Flatten an array of arrays of... etc, but throw an error if any are empty references.
39     * @param values array of values
40     * @returns {Array} flattened array
41     */
42    Filter.flattenAndThrow = function (values) {
43        if (values.length === 0) {
44            throw new Errors_1.RefError("Reference does not exist.");
45        }
46        return values.reduce(function (flat, toFlatten) {
47            if (Array.isArray(toFlatten) && toFlatten.length === 0) {
48                throw new Errors_1.RefError("Reference does not exist.");
49            }
50            return flat.concat(Array.isArray(toFlatten) ? Filter.flattenAndThrow(toFlatten) : toFlatten);
51        }, []);
52    };
53    /**
54     * Filter out all strings from an array.
55     * @param arr to filter
56     * @returns {Array} filtered array
57     */
58    Filter.filterOutStringValues = function (arr) {
59        var toReturn = [];
60        for (var i = 0; i < arr.length; i++) {
61            if (typeof arr[i] !== "string") {
62                toReturn.push(arr[i]);
63            }
64        }
65        return toReturn;
66    };
67    /**
68     * Filters out non number values.
69     * @param arr to filter
70     * @returns {Array} filtered array
71     */
72    Filter.filterOutNonNumberValues = function (arr) {
73        var toReturn = [];
74        for (var i = 0; i < arr.length; i++) {
75            if (typeof arr[i] !== "string" && typeof arr[i] !== "boolean") {
76                toReturn.push(arr[i]);
77            }
78        }
79        return toReturn;
80    };
81    /**
82     * Returns an array as unique values.
83     * @param arr - to filter down to uniques.
84     * @returns {Array}
85     */
86    Filter.unique = function (arr) {
87        var a = [];
88        for (var i = 0, l = arr.length; i < l; i++) {
89            if (a.indexOf(arr[i]) === -1 && arr[i] !== '') {
90                a.push(arr[i]);
91            }
92        }
93        return a;
94    };
95    return Filter;
96}());
97exports.Filter = Filter;