• Nov 19, 2022 •CodeCatch
0 likes • 3 views
const euclideanDistance = (a, b) => Math.hypot(...Object.keys(a).map(k => b[k] - a[k])); euclideanDistance([1, 1], [2, 3]); // ~2.2361 euclideanDistance([1, 1, 1], [2, 3, 2]); // ~2.4495
0 likes • 2 views
const union = (...arr) => [...new Set(arr.flat())]; // Example union([1, 2], [2, 3], [3]); // [1, 2, 3]
const gcd = (...arr) => { const _gcd = (x, y) => (!y ? x : gcd(y, x % y)); return [...arr].reduce((a, b) => _gcd(a, b)); }; gcd(8, 36); // 4 gcd(...[12, 8, 32]); // 4
• Jan 26, 2023 •AustinLeath
0 likes • 7 views
function printHeap(heap, index, level) { if (index >= heap.length) { return; } console.log(" ".repeat(level) + heap[index]); printHeap(heap, 2 * index + 1, level + 1); printHeap(heap, 2 * index + 2, level + 1); } //You can call this function by passing in the heap array and the index of the root node, which is typically 0, and level = 0. let heap = [3, 8, 7, 15, 17, 30, 35, 2, 4, 5, 9]; printHeap(heap,0,0)
0 likes • 1 view
const nums = [1, 2, 3]; const strs = Array.from('est'); nums.push(6); nums.push(4, 9); strs.unshift('t'); nums.length; // 6 nums[nums.length - 1]; // 9 strs[0]; // 't' strs[2]; // 's' nums.slice(1, 3); // [2, 3] nums.map(n => n * 2); // [2, 4, 6, 12, 8, 18] nums.filter(n => n % 2 === 0); // [2, 6, 4] nums.reduce((a, n) => a + n, 0); // 25 strs.reverse(); // ['t', 's', 'e', 't'] strs.join(''); // 'test' const nums = new Set([1, 2, 3]); nums.add(4); nums.add(1); nums.add(5); nums.add(4); nums.size; // 5 nums.has(4); // true nums.delete(4); nums.has(4); // false [...nums]; // [1, 2, 3, 5] nums.clear(); nums.size; // 0 const items = new Map([ [1, { name: 'John' }], [2, { name: 'Mary' }] ]); items.set(4, { name: 'Alan' }); items.set(2, { name: 'Jeff' }); items.size; // 3 items.has(4); // true items.get(2); // { name: 'Jeff' } items.delete(2); items.size; // 2 [...items.keys()]; // [1, 4] [...items.values()]; // [{ name: 'John' }, { name: 'Alan' }] items.clear(); items.size; // 0
const formatDuration = ms => { if (ms < 0) ms = -ms; const time = { day: Math.floor(ms / 86400000), hour: Math.floor(ms / 3600000) % 24, minute: Math.floor(ms / 60000) % 60, second: Math.floor(ms / 1000) % 60, millisecond: Math.floor(ms) % 1000 }; return Object.entries(time) .filter(val => val[1] !== 0) .map(([key, val]) => `${val} ${key}${val !== 1 ? 's' : ''}`) .join(', '); }; formatDuration(1001); // '1 second, 1 millisecond' formatDuration(34325055574); // '397 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds'