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;