30 lines
914 B
JavaScript
30 lines
914 B
JavaScript
class Utils {
|
|
|
|
// adapted from https://www.w3resource.com/javascript-exercises/fundamental/javascript-fundamental-exercise-88.php
|
|
static median(arr) {
|
|
const mid = Math.floor(arr.length / 2);
|
|
const nums = [...arr].sort((a, b) => a - b);
|
|
return arr.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;
|
|
}
|
|
|
|
static sum(numbers) {
|
|
return numbers.reduce((a, b) => a + b, 0);
|
|
}
|
|
|
|
static getKeysAlignedWithValues(dict) {
|
|
const keys = [];
|
|
const values = [];
|
|
for (const [key, value] of Object.entries(dict)) {
|
|
keys.push(key);
|
|
values.push(value);
|
|
}
|
|
return { 'keys': keys, 'values': values };
|
|
}
|
|
|
|
static sliceDict(dict, start, end) {
|
|
return Object.fromEntries(Object.entries(dict).slice(start, end));
|
|
}
|
|
|
|
static zip = rows => rows[0].map((_, c) => rows.map(row => row[c]))
|
|
}
|