题解 | #文字输出#

文字输出

http://www.nowcoder.com/practice/b403d1051e5d4568912e6d265e1e2cde

function output(str) {
        var strArr = str.split('')
        //3
        var blinkEl = document.getElementById('jsBlink')
        var children = blinkEl.parentNode.children
        var length = children.length
        for (var i = length - 2; i >= 0; i--) {
          children[i].parentNode.removeChild(children[i])
        }
        console.log(blinkEl.parentNode)
        //2
        var spanFactory = function (s) {
          var el = document.createElement('span')
          el.classList.add('word')
          el.classList.add('color' + (Math.floor(Math.random() * 24) + 1))
          el.innerHTML = s
          return el
        }
        //1
        var time = function () {
          if (strArr.length === 0) return
          var s = strArr.shift()
          if (s === '\n') {
            blinkEl.parentNode.insertBefore(
              document.createElement('br'),
              blinkEl
            )
          } else {
            if ([' ', '<', '>'].includes(s)) {
              s = { ' ': '&nbsp;', '<': '&lt;', '>': '&gt;' }[s]
            }
            blinkEl.parentNode.insertBefore(spanFactory(s), blinkEl)
          }

          timer = setTimeout(time, 200)
        }
        time()
      }

测试用例有问题(Math.floor(Math.random() * 24) + 1)

全部评论

相关推荐

10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务