@formant/ava
Version:
A framework for automated visual analytics.
42 lines (41 loc) • 1.14 kB
JavaScript
;
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;