UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

27 lines (26 loc) 829 B
import { isUndefined } from '../guards/primitives.js'; import { normalizeNumber } from './utilities.js'; export const isEven = (input) => { const parsed = normalizeNumber(input); if (isUndefined(parsed)) return false; return parsed % 2 === 0; }; export const isOdd = (input) => { const parsed = normalizeNumber(input); if (isUndefined(parsed)) return false; return parsed % 2 !== 0; }; export const isMultiple = (input, multipleOf) => { return input % multipleOf === 0; }; export function isPerfectSquare(num) { return Number.isInteger(Math.sqrt(num)); } export function isFibonacci(num) { return isPerfectSquare(5 * num * num + 4) || isPerfectSquare(5 * num * num - 4); } export function areInvalidNumbers(...numbers) { return numbers?.some((n) => !Number.isFinite(n)); }