function debounced(fn, wait = 50) { let item; return function (...rest) { if (item) clearTimeout(item); item = setTimeout(() => { fn.apply(...rest); }, wait); }; }