UNPKG

encog

Version:

Encog is a NodeJs ES6 framework based on the Encog Machine Learning Framework by Jeff Heaton, plus some the of basic data manipulation helpers.

91 lines (85 loc) 2.54 kB
const _ = require('lodash'); module.exports = class ArrayUtils { /** * Fill an array with a specific value. * @method fillArray * @param arr The array to fill. * @param start The starting index. * @param stop The stopping index. * @param value The value to fill. */ static fill(arr, start, stop, value) { if (arguments.length === 2) { _.fill(arguments[0], arguments[1]); } else { _.fill(arr, value, start, stop); } }; /** * Create a new floating point array. * @param size {Number} The size of the array to create. * @param defaultValue {Number} The default value * @return {Array} */ static newFloatArray(size, defaultValue = 0.0) { return _.fill(Array(size), defaultValue); }; /** * Create a new int array. * @param size {Number} The size of the array to create. * @param defaultValue {Number} The default value * @return {Array} */ static newIntArray(size, defaultValue = 0) { return _.fill(Array(size), defaultValue); }; /** * Create a new boolean point array. * @param size {Number} The size of the array to create. * @return {Array} */ static newBooleanArray(size) { return _.fill(Array(size), false); }; /** * Copy an array * * @param source {Array} * The source. * @param sourcePos {number} * The source index. * @param target {Array} * The target. * @param targetPos {number} * The target index. * @param length {number} * The length. */ static arrayCopy(source, sourcePos, target, targetPos, length) { if (arguments.length == 2) { ArrayUtils.arrayCopy(arguments[0], 0, arguments[1], 0, arguments[0].length); } else if (sourcePos >= 0 && targetPos >= 0) { for (let index = 0; index < sourcePos + length; index++) { target[targetPos + index] = source[index]; } } } /** * @param arr {Array} * @param rowSize {Number} */ static toStringAsMatrix(arr, rowSize) { let str = ""; _.map(arr, (v, index)=> { str += v; if ((index + 1) % rowSize == 0) { str += '\n' } else { str += ','; } }); str = _.trim(str); str = _.trimEnd(str, ','); return str; } }