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
JavaScript
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));
}