<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [JS] 數(shù)組空位與遍歷方法

      當(dāng)數(shù)組中存在空位時(shí),遍歷數(shù)組需要選擇合適的方法,不同的方法可能返回不同的結(jié)果。

      示例數(shù)組:

      const arr = [1, 2, , 3, 4];
      

      數(shù)組空位不會(huì)影響數(shù)組長(zhǎng)度,arr的長(zhǎng)度是 5。

      for循環(huán)

      最樸素的 for 循環(huán)會(huì)遍歷到數(shù)組的每一位,對(duì)于空位,訪問(wèn)時(shí)返回 undefined。

      for(let i=0; i<arr.length; i++){
        console.log(arr[i]);
      }
      

      輸出

      1        
      2        
      undefined
      4        
      5  
      

      forEach方法

      forEach 方法會(huì)跳過(guò)空位,所以這里只遍歷到了4個(gè)數(shù)。

      arr.forEach(el=>{
        console.log(el);
      });
      

      輸出

      1        
      2        
      4        
      5
      

      for in 方法

      for-of 和普通的 for循環(huán)結(jié)果是一樣的,這里看 for-in 的結(jié)果。

      for-in 遍歷數(shù)組對(duì)象的可枚舉屬性鍵,會(huì)跳過(guò)空位。

      for(let key in arr){
        console.log(arr[key]);
      }
      

      輸出

      1
      2
      4
      5
      

      數(shù)組的entries方法

      數(shù)組的 entries 方法返回一個(gè)包含數(shù)組中每個(gè)索引的鍵值對(duì)的迭代器對(duì)象。當(dāng)遇到空位時(shí),對(duì)應(yīng)的值讀取為 undefined。

      for (let [key, value] of arr.entries()) {
        console.log([key, value]);
      }
      

      輸出

      [ 0, 1 ]
      [ 1, 2 ]
      [ 2, undefined ]
      [ 3, 4 ]
      [ 4, 5 ]
      

      思考:什么時(shí)候會(huì)忽略空位?

      根據(jù)上面4種簡(jiǎn)單的情形,可以看到 forEach方法和for-in 循環(huán)會(huì)跳過(guò)空位,而其它則不會(huì)。

      事實(shí)上,除了 forEach 方法,傳入一個(gè)回調(diào)函數(shù)遍歷數(shù)組的方法都會(huì)忽略空位,包括但不限于:map, filter, reduce, find。

      而 for-in 循環(huán)之所以會(huì)忽略空位,是因?yàn)榭斩磳?duì)應(yīng)的索引沒(méi)有被創(chuàng)建為可枚舉屬性,因此不會(huì)被 for-in 遍歷到。

      數(shù)組作為一種對(duì)象,key 是數(shù)字索引,value 是數(shù)組元素。

      同理,如果使用 Object.keys()Object.values()Object.entries()遍歷數(shù)組對(duì)象,會(huì)發(fā)現(xiàn)空洞都會(huì)被忽略。

      image-20240902202934098

      但是,數(shù)組原型上的.keys.values.entries方法,是為數(shù)組特殊設(shè)計(jì)的,用這些方法遍歷數(shù)組,就不會(huì)跳過(guò)空位。

      image-20240902203026790

      for-of 循環(huán)遍歷數(shù)組為什么不會(huì)跳過(guò)空位?for-of 一個(gè)數(shù)組對(duì)象,會(huì)調(diào)用它的 [Symbol.iterator] 方法返回一個(gè)迭代器。而 Array.prototype.valuesArray.prototype[Symbol.iterator]的默認(rèn)實(shí)現(xiàn),于是 for-of 和.values方法保持一致,都不會(huì)跳過(guò)空位。

      對(duì)比總結(jié)

      • for:不忽略
      • for in忽略空位
      • for of:不忽略

      這仨原理不一樣,只是因?yàn)殚L(zhǎng)得像所以放一起。

      for in 忽略空位是和下面的對(duì)象方法一個(gè)道理。

      for of 不忽略空位和下面數(shù)組的values等方法是一個(gè)道理。

      • 對(duì)象方法 Object.keys()Object.values()Object.entries()忽略空位
      • 數(shù)組方法:
        • forEachmapfiltereveryreduce等:忽略空位
        • keysvaluesentries:不忽略空位
      posted @ 2024-09-02 20:44  feixianxing  閱讀(149)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久婷婷成人综合色| 国产精品麻豆成人av电影艾秋| 国产精品v片在线观看不卡| 男人用嘴添女人私密视频| 最近中文字幕国产精品| 麻豆国产成人av高清在线| 美女人妻激情乱人伦| 人妻夜夜爽天天爽三区麻豆av| 亚洲一区二区三区啪啪| 成a人片亚洲日本久久| 精品国产精品国产偷麻豆| 日本熟妇XXXX潮喷视频| 玩弄少妇人妻| 国产高清视频一区二区三区 | 亚洲精品自拍视频在线看| 最新午夜男女福利片视频| 日本一区二区精品色超碰| 久久伊99综合婷婷久久伊| 爱啪啪精品一区二区三区| 潍坊市| 久久九九日本韩国精品| 国产精品国产三级国快看| 国自产拍偷拍精品啪啪一区二区| 国产人妻高清国产拍精品| 亚洲男人精品青春的天堂| 黑人异族巨大巨大巨粗| XXXXXHD亚洲日本HD| 色偷偷天堂av狠狠狠在| 99久久国产综合精品成人影院| 亚洲国产午夜精品理论片妓女| 亚洲中文字幕无码一久久区| 四虎国产精品成人| 美女无遮挡免费视频网站| 久久夜色精品国产亚洲a| 亚洲欧美不卡高清在线| 国产最大成人亚洲精品| 精品偷拍一区二区三区在| 久久se精品一区精品二区国产| 一本久道中文无码字幕av| 无码专区 人妻系列 在线| 97人妻人人揉人人躁人人|