树形图查找与纯函数默写第二遍

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>树形图查找与纯函数默写第二遍</title>
  </head>
  <body>
    <script>
      // 树形图查找
      let arr = [
        {
          id: 1,
          name: '1',
          children: [
            {
              id: 11,
              name: '11',
              children: [
                {
                  id: 111,
                  name: '111'
                }
              ]
            }
          ]
        },
        {
          id: 2,
          name: '2',
          children: [
            {
              id: 22,
              name: '22',
              children: [
                {
                  id: 222,
                  name: '222'
                }
              ]
            }
          ]
        }
      ];

      function searchInTree(arr, id) {
        let result = null;
        if (!arr) {
          return null;
        }
        for (let key in arr) {
          if (result !== null) {
            break;
          }
          if (arr[key].id === id) {
            result = arr[key];
            break;
          } else if (arr[key].children && arr[key].children.length > 0) {
            result = searchInTree(arr[key].children, id);
          }
        }
        return result;
      }
      // 第二遍传参数的时候只传了一个参数
      console.log(searchInTree(arr, 2));

      function getArea(r) {
        return Math.PI * r * r;
      }
      function memorize(func) {
        let obj = {};
        return function () {
          let key = JSON.stringify([...arguments]);
          if (!obj[key]) {
            console.log(111);
            obj[key] = func(...arguments);
          }
          return obj[key];
        };
      }
      let a = memorize(getArea);
      console.log(a(5));
      console.log(a(5));
      console.log(a(5));
      console.log(a(5));
      console.log(a(5));
      console.log(a(6));
    </script>
  </body>
</html>

 

posted @ 2022-04-07 22:59  苹果π  阅读(23)  评论(0)    收藏  举报