UNPKG

@ffsm/utils

Version:

A collection of utility functions for React and JavaScript, providing type-safe utilities for common tasks like prop management, conditional rendering, and more.

59 lines (58 loc) 1.28 kB
export function isEqualArray(a, b) { if (a === null) { return b === null; } if (a.length !== b.length) { return false; } if (a.length === 0) { return true; } for (let i = 0; i < a.length; i++) { const valueA = a[i]; const valueB = b[i]; if (!isEqual(valueA, valueB)) { return false; } } return true; } export function isEqualObject(a, b) { if (a === null) { return b === null; } if (Array.isArray(a)) { if (Array.isArray(b)) { return isEqualArray(a, b); } return false; } const keyA = Object.keys(a); const keyB = Object.keys(b); if (keyA.length !== keyB.length) { return false; } if (keyA.length === 0) { return true; } for (const key of keyA) { if (!keyB.includes(key)) { return false; } const valueA = a[key]; const valueB = b[key]; if (!isEqual(valueA, valueB)) { return false; } } return true; } export function isEqual(a, b) { if (typeof a !== typeof b) { return false; } if (typeof a === 'object') { return isEqualObject(a, b); } return a === b; }