Classic debounce function:
const debounce = (fn, delay) => {
let timer = null;
return function (...args) {
const context = this;
timer && clearTimeout(timer);
timer = setTimeout(() => {
| // Construct a table with table[i] as the length of the longest prefix of the substring 0..i | |
| function longestPrefix(str) { | |
| // create a table of size equal to the length of `str` | |
| // table[i] will store the prefix of the longest prefix of the substring str[0..i] | |
| var table = new Array(str.length); | |
| var maxPrefix = 0; | |
| // the longest prefix of the substring str[0] has length | |
| table[0] = 0; |