UNPKG

@formant/ava

Version:

A framework for automated visual analytics.

42 lines (41 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.rank = exports.unique = exports.sign = void 0; var lodash_1 = require("lodash"); // sign function sign(value) { if (value > 0) return 1; return value < 0 ? -1 : 0; } exports.sign = sign; // unique function unique(arr) { var sorted = arr.slice().sort(); var uniqArr = [sorted[0]]; var countArr = [1]; for (var i = 1; i < sorted.length; i += 1) { if (sorted[i] !== uniqArr[uniqArr.length - 1]) { uniqArr.push(sorted[i]); countArr.push(1); } else { countArr[countArr.length - 1] += 1; } } return [uniqArr, countArr]; } exports.unique = unique; // rank function rank(arr) { var sorted = arr.slice().sort(); var rank = []; for (var i = 0; i < arr.length; i += 1) { var value = arr[i]; var firstRank = sorted.indexOf(value) + 1; var lastRank = (0, lodash_1.lastIndexOf)(sorted, value) + 1; rank.push(firstRank === lastRank ? firstRank : (firstRank + lastRank) / 2); } return rank; } exports.rank = rank;