美文网首页
【前端】interview 手写题2.0

【前端】interview 手写题2.0

作者: Q小予o0 | 来源:发表于2021-08-31 17:08 被阅读0次

    实现instanceof

    function isInstanceOf(left,right) {
        let leftProto = left.__proto__;
        let rightProto = right.prototype;
        return leftProto === rightProto
    }
    isInstanceOf([],Array);  // true
    

    传入一个带空格的多字符串,返回最长的字符的长度

    const str = 'just tell me the length'  // 答案是length的长度6
    // 方法一:
    const getMax = (str) => {
        const arr = str.split(' ');
        return Math.max(...arr.filter(item=>item.length>0).map(item=>item.length))
    }
    getMax(str);  // 6
    
    // 方法二:
    function getMaxLength (str) {
        const arr = str.split(' ').filter(item=>item.length>0);
        let iLength = 0;
        for (let i=0;i<arr.length;i++) {
            iLength = arr[i].length>iLength?arr[i].length:iLength
        }
        return iLength
    }
    getMaxLength(str)  // 6
    

    ul 里创建5个li, 往第3个li插入一个节点

    function createElem(){
        const ul = document.createElement('ul');
        for (let i=1;i < 6; i++ ) {
            const li = document.createElement('li');
            const ol = document.createElement('ol');
            li.innerHTML=`这是一个li${i}`
            ol.innerHTML=`这是一个ol${i}`
            // 往第3个插入ol新节点,并更改内联样式颜色
            if(i == 3) {
                li.style.color = 'red';
                li.insertBefore(ol,ul.childNodes[3])
            }
            ul.appendChild(li);
        }
        document.body.appendChild(ul)
    }
    window.onload = createElem();
    

    获取所有img节点数组

    document.querySelectorAll('img')
    

    指定元素被设置指定的背景颜色

    <h3>A h3 element</h3>
    <h2>A h2 element</h2>
    document.querySelector("h2, h3").style.backgroundColor = "red";
    

    根据下方结构求二叉树最大深度

    interface Node<T> { val: T left: Node<T> right: Node<T>}

    const root = {
      val: 4,
      left: {
        val: 2,
        left: {
          val: 1
        },
        right: {
          val: 3
        }
      },
      right: {
        val: 5,
        right: {
          val: 6,
          right: {
            val: 7
          }
        }
      }
    }
    

    当树为空,深度为0;
    当树不为空,深度为左右子树中深度的最大值,加上这个节点本身所占的层数(1)

    const getDepth = root => {
       if (!root) return 0;
      return Math.max(getDepth(root.left),getDepth(root.right))+1
    }
    getDepth(root)  // 4
    

    相关文章

      网友评论

          本文标题:【前端】interview 手写题2.0

          本文链接:https://www.haomeiwen.com/subject/ssaailtx.html