https://leetcode-cn.com/problems/search-insert-position/

    1. function searchInsert(nums: number[], target: number): number {
    2. let left = 0, right = nums.length - 1, mid = 0;
    3. while (left <= right) {
    4. mid = (left + right) >>> 1;
    5. if (target === nums[mid]) {
    6. return mid;
    7. } else if (target < nums[mid]) {
    8. right = mid -1;
    9. } else {
    10. left = mid + 1;
    11. }
    12. }
    13. return left;
    14. }

    在线demo

    // 下标
    let cursor = 0;
    // hooks 存放
    let hooks:any = [];
    function useCallback<T>(callback: T, deps: React.DependencyList): T {
      hooks[cursor] = hooks[cursor] || [callback, deps];
      const [lastCallBack, lastDeps] = hooks[cursor];
      const hasChanged = !deps.every((el, i) => el === lastDeps[i]);
      // 依赖发生改变,赋新的值
      if (hasChanged) {
        hooks[cursor++] = [callback, deps];
        return callback;
      }
      cursor++;
      return lastCallBack;
    }