<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何解決數(shù)組塌陷?

          共 850字,需瀏覽 2分鐘

           ·

          2021-03-18 18:55

          談到數(shù)組塌陷,估計(jì)小伙伴們不知道什么意思,先看一張圖。



          從上圖我們大概明白了“塌陷”的意思,即如果刪除了數(shù)組中的某一個(gè)元素,當(dāng)前這個(gè)索引的內(nèi)容不會(huì)是空的,也不會(huì)占位,數(shù)組只會(huì)把后面的元素往前補(bǔ)上,這就導(dǎo)致后面元素原先的索引發(fā)生改變,這種現(xiàn)象就是數(shù)組塌陷。


          案例分析


          我們來(lái)看看數(shù)組塌陷帶來(lái)的苦惱。


          簡(jiǎn)單描述下,在一個(gè)數(shù)組 arr 中存放四個(gè)函數(shù) fn1,fn2,fn3,fn4,分別打印 1,2,3,4,同時(shí)第二個(gè)函數(shù)內(nèi)部刪除數(shù)組中的第一個(gè)元素 fn1。



          當(dāng)我們執(zhí)行 obj.fire() 的時(shí)候,依次會(huì)把數(shù)組中的四個(gè)函數(shù)都執(zhí)行一遍,但是由于數(shù)組塌陷的問題,導(dǎo)致我們?cè)趫?zhí)行第二個(gè)函數(shù)(i = 1)的時(shí)候,刪除了第一個(gè)元素。



          這就導(dǎo)致后面的元素的索引全部減一,再往后執(zhí)行的 i = 2,就不再是之前的 fn3,而是是最后一個(gè)元素 fn4了,所以最終就只能打印 1,2,4。


          解決辦法


          當(dāng)我們知道數(shù)組塌陷這個(gè)原因之后,再刪除元素的時(shí)候,不應(yīng)該直接刪掉,而應(yīng)該是使用 null 替換掉當(dāng)前的元素。當(dāng)?shù)诙伪闅v數(shù)組的時(shí)候,把為 null 的元素過濾掉就 ok 了。



          了解了數(shù)組塌陷之后,再去熟悉發(fā)布訂閱模式,就不會(huì)陷入事件中心的坑了,這樣可以避免在事件調(diào)度上出現(xiàn)一些錯(cuò)誤。


          推薦閱讀:

          臃腫項(xiàng)目怎么拆?都閃開,讓 Nginx 來(lái)!

          前端配置化平臺(tái)——快速搞定活動(dòng)頁(yè)面

          基于 Vue CLI 搭建腳手架。

          破解項(xiàng)目臃腫之道:微前端落地實(shí)踐

          H5 活動(dòng)頁(yè)面快速生成神器——Mocha

          從理解 React 框架開始,開啟金三銀四面試之旅。

          前端典型面試題:為什么 React 選擇使用 JSX ?

          尤雨溪 3 天 10 更的 Vite 究竟有什么魔力?


          點(diǎn)個(gè)“在看”和“”吧,

          畢竟我是要成為前端網(wǎng)紅的人。

          瀏覽 61
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  aaa在线免费观看 | 无码精品一区二区三区免费久久 | 亚洲乱伦熟妇 | 一级欧美a片 | 色婷婷精品国产免费 |