整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript 中 find() 和 filter() 方法的區別

          avaScript 在 ES6 上有很多數組方法,每種方法都有獨特的用途和好處。

          在開發應用程序時,大多使用數組方法來獲取特定的值列表并獲取單個或多個匹配項。

          在列出這兩種方法的區別之前,我們先來一一了解這些方法。

          JavaScript find() 方法

          ES6 find() 方法返回通過測試函數的第一個元素的值。如果沒有值滿足測試函數,則返回 undefined。

          語法

          以下語法中使用的箭頭函數。

          find((element) => { /* ... */ } )
          find((element, index) => { /* ... */ } )
          find((element, index, array) => { /* ... */ } )
          

          我們有一個包含名稱 age 和 id 屬性的用戶對象列表,如下所示:

          let users = [{
              id:1,
              name: 'John',
              age: 22
          }, {
              id:2,
              name: 'Tom',
              age: 22
          }, {
              id:3,
              name: 'Balaji',
              age: 24
          }];
          

          以下代碼使用 find() 方法查找年齡大于 23 的第一個用戶。

          console.log(users.find(user => user.age > 23));
          //console
          //{ id: 3, name: 'Balaji', age:24}
          

          現在我們要找到第一個年齡為 22 的用戶

          console.log(users.find(user => user.age === 22));
          //console
          //{ id: 1, name: 'John', age:22}
          

          假設沒有找到匹配意味著它返回 undefined

          console.log(users.find(user => user.age === 25));
          //console
          //undefined
          

          JavaScript filter() 方法

          filter() 方法創建一個包含所有通過測試函數的元素的新數組。如果沒有元素滿足測試函數,則返回一個空數組。

          語法

          filter((element) => { /* ... */ } )
          filter((element, index) => { /* ... */ } )
          filter((element, index, array) => { /* ... */ } )
          

          我們將使用相同的用戶數組和測試函數作為過濾器示例。

          以下代碼使用 filter() 方法查找年齡大于 23 的第一個用戶。

          console.log(users.filter(user => user.age > 23));
          //console
          現在我們要過濾年齡為 22 歲的用戶//[{ id: 3, name: 'Balaji', age:24}]
          

          現在我們要過濾年齡為 22 歲的用戶

          console.log(users.filter(user => user.age === 22));
          //console
          //[{ id: 1, name: 'John', age:22},{ id: 2, name: 'Tom', age:22}]
          

          假設沒有找到匹配意味著它返回一個空數組

          console.log(users.filter(user => user.age === 25));
          //console
          //[]
          

          find() 和 filter() 的區別與共點

          共點

          高階函數:這兩個函數都是高階函數。

          區別

          1、通過一個測試功能

          find() 返回第一個元素。

          filter() 返回一個包含所有通過測試函數的元素的新數組。

          2、如果沒有值滿足測試函數

          find() 返回未定義;

          filter() 返回一個空數組;


          - End -

          ind() 方法用于查找數組中符合條件的第一個元素,并返回該元素。find() 方法可以接受一個回調函數作為參數,該回調函數會依次遍歷數組中的每一個元素,如果回調函數返回 true,則表示找到了符合條件的元素,該元素將作為 find() 方法的返回值;如果遍歷完數組后仍未找到符合條件的元素,則返回 undefined。

          語法:

          array.find(callback[, thisArg])
          • 其中,array 是要查找的數組;
          • callback 是回調函數,它可以接受三個參數:當前元素的值、當前元素的索引、當前數組對象;
          • thisArg 是指定 callback 函數中 this 的值,默認為 undefined。

          示例:

          //查找大于3的元素
          var arr = [1, 2, 3, 4, 5, 6];
          var result = arr.find(item=> { 
           return item >= 3;
          }); 
          console.log(result); // 3
          • 在上面的代碼中,callback 函數接受一個參數 item,表示當前元素的值,如果 item 大于等于 3,則返回 true,該元素將作為 find() 方法的返回值。

          find() 方法是 JavaScript 中常用的數組方法之一,它可以用于快速查找數組中符合條件的元素。find() 方法只返回符合條件的第一個元素,如果數組中存在多個符合條件的元素,它們將被忽略。

          ython爬蟲采集的時候會需要對采集的內容進行處理行為,處理什么?簡單的說就是處理多余的HTML代碼跟確定文章標題跟結尾,還有內容區間,方法如下:

          首先先是定位,我們先假設我們采集到了一批數據,數據里的內容是這樣的<title>這里是標題</title>,<p>內容肯定是很多的,不過這里也就自己隨便手打一些來隨便用用。</p>,當然,我們采集到的內容肯定不會這么干凈的,這樣我們就需要處理一下內容的問題了。

          假設<title>前面還有一些不要的HTML代碼,那么我們就要處理掉,不然采集下來就挺難看的,所以我們需要處理掉:

          h = html.find('<title>') #這一段是定位開頭。

          b = html.find('</title>') #這一段是定位結尾,我們用的是find方法。

          字符串的定位都可以用find方法來處理,find方法是檢測str是否包含在string里,如果指定了位置,那么他就會查找指定位置的范圍內是否存在,如果有就返回索引值,沒有就會返回-1。

          當然,還有另一個方法,叫做index,不過這個方法如果不存在的話就會報錯,不建議多用。


          主站蜘蛛池模板: 中文字幕无线码一区| 亚洲一区无码中文字幕乱码| 精品一区二区三区AV天堂| 国产精品一区二区久久精品涩爱| 国内精品无码一区二区三区| 亚洲AV无码一区二区三区国产 | 日韩精品一区二区三区四区| 亚洲熟女一区二区三区| 中文人妻无码一区二区三区| 国产探花在线精品一区二区| 成人日韩熟女高清视频一区| 亚洲一区精品无码| 亚洲国产精品一区二区第一页| 99久久精品国产高清一区二区| 久久久久人妻一区精品| AV无码精品一区二区三区宅噜噜| 国产一区二区三区免费观在线| 国产一区二区三区夜色| 99久久综合狠狠综合久久一区| 老熟女高潮一区二区三区| 中文字幕乱码亚洲精品一区| 无码视频一区二区三区| 性色AV 一区二区三区| 国产日韩AV免费无码一区二区| 国产色综合一区二区三区| 少妇精品无码一区二区三区 | 国内精品一区二区三区东京| 亚洲AV无码一区二区三区鸳鸯影院 | 日韩人妻无码一区二区三区久久| 精品无码国产一区二区三区AV | 亚洲国产视频一区| 影院成人区精品一区二区婷婷丽春院影视 | V一区无码内射国产| 国产色精品vr一区区三区| 台湾无码一区二区| 国产成人精品一区二三区熟女| 精品91一区二区三区| 国产一区三区二区中文在线| 老熟妇仑乱视频一区二区| 日韩久久精品一区二区三区 | 精品国产一区二区三区不卡|