最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中filter的用法實例分析

 更新時間:2019年02月27日 12:04:31   作者:cjx_work  
這篇文章主要介紹了JavaScript中filter的用法,結合實例形式分析了filter的功能、使用方法及相關操作注意事項,需要的朋友可以參考下

本文實例講述了JavaScript中filter的用法。分享給大家供大家參考,具體如下:

filter

filter也是一個常用的操作,它用于把Array的某些元素過濾掉,然后返回剩下的元素。

map()類似,Array的filter()也接收一個函數(shù)。和map()不同的是,filter()把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是true還是false決定保留還是丟棄該元素。

例如,在一個Array中,刪掉偶數(shù),只保留奇數(shù),可以這么寫:

var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
  return x % 2 !== 0;
});
r; // [1, 5, 9, 15]

把一個Array中的空字符串刪掉,可以這么寫:

var arr = ['A', '', 'B', null, undefined, 'C', ' '];
var r = arr.filter(function (s) {
  return s && s.trim(); // 注意:IE9以下的版本沒有trim()方法
});
r; // ['A', 'B', 'C']

可見用filter()這個高階函數(shù),關鍵在于正確實現(xiàn)一個“篩選”函數(shù)。

回調(diào)函數(shù)

filter()接收的回調(diào)函數(shù),其實可以有多個參數(shù)。通常我們僅使用第一個參數(shù),表示Array的某個元素?;卣{(diào)函數(shù)還可以接收另外兩個參數(shù),表示元素的位置和數(shù)組本身:

var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
  console.log(element); // 依次打印'A', 'B', 'C'
  console.log(index); // 依次打印0, 1, 2
  console.log(self); // self就是變量arr
  return true;
});

利用filter,可以巧妙地去除Array的重復元素:

'use strict';
var
  r,
  arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry'];
r = arr.filter(function (element, index, self) {
  return self.indexOf(element) === index;
});
console.log(r.toString());

運行結果:

apple,strawberry,banana,pear,orange

去除重復元素依靠的是indexOf總是返回第一個元素的位置,后續(xù)的重復元素位置與indexOf返回的位置不相等,因此被filter濾掉了。

嘗試用filter()篩選出素數(shù):

'use strict';
function get_primes(arr) {
  var i;
  return arr.filter(function (element) {
      var flag=true;
      if(element<2){
      flag=false;
    }else {
      for(var i=2;i<element;i++){
        if (element%i==0){
          flag=false;
          break;
        }
      }
    }
    return flag;
  });
}
// 測試:
var
  x,
  r,
  arr = [];
for (x = 1; x < 100; x++) {
  arr.push(x);
}
r = get_primes(arr);
if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) {
  console.log('測試通過!');
} else {
  console.log('測試失敗: ' + r.toString());
}

運行結果:

測試通過!

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

PS:這里再為大家推薦一款JS數(shù)組遍歷方式分析對比工具供大家參考:

在線JS常見遍歷方式性能分析比較工具http://tools.jb51.net/aideddesign/js_bianli

更多關于JavaScript相關內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《javascript面向對象入門教程》、《JavaScript數(shù)學運算用法總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》及《JavaScript錯誤與調(diào)試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

相關文章

  • javascript動畫之模擬拖拽效果篇

    javascript動畫之模擬拖拽效果篇

    其實javascript本身是具有原生拖放功能的,但是由于兼容性問題,以及功能實現(xiàn)的方式,用的不是很廣泛。javascript動畫廣泛使用的還是模擬拖拽。本文將詳細介紹javascript的模擬拖拽,有需要的可以參考借鑒。
    2016-09-09
  • uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題詳解

    uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題詳解

    這次項目中做了一個圖片上傳,要求是大于2MB的就壓縮成2MB一下的再上傳,下面這篇文章主要給大家介紹了關于uni-app開發(fā)微信小程序之H5壓縮上傳圖片的問題,需要的朋友可以參考下
    2023-03-03
  • 解決layer.confirm快速點擊會重復觸發(fā)事件的問題

    解決layer.confirm快速點擊會重復觸發(fā)事件的問題

    今天小編就為大家分享一篇解決layer.confirm快速點擊會重復觸發(fā)事件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Js參數(shù)RSA加密傳輸之jsencrypt.js的使用

    Js參數(shù)RSA加密傳輸之jsencrypt.js的使用

    這篇文章主要介紹了Js參數(shù)RSA加密傳輸之jsencrypt.js的使用,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • javascript 嵌套的函數(shù)(作用域鏈)

    javascript 嵌套的函數(shù)(作用域鏈)

    當你進行函數(shù)的嵌套時,要注意實際上作用域鏈是發(fā)生變化的,這點可能看起來不太直觀。你可把下面的代碼置入firebug監(jiān)視值的變化。
    2010-03-03
  • JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例

    JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作示例

    這篇文章主要介紹了JS實現(xiàn)根據(jù)數(shù)組對象的某一屬性排序操作,涉及javascript針對json數(shù)組的遍歷、比較、排序等相關操作技巧,需要的朋友可以參考下
    2019-01-01
  • JS將數(shù)字轉換成三位逗號分隔的樣式(示例代碼)

    JS將數(shù)字轉換成三位逗號分隔的樣式(示例代碼)

    本篇文章主要是對JS將數(shù)字轉換成三位逗號分隔的樣式(示例代碼)進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • JS實現(xiàn)往下不斷流動網(wǎng)頁背景的方法

    JS實現(xiàn)往下不斷流動網(wǎng)頁背景的方法

    這篇文章主要介紹了JS實現(xiàn)往下不斷流動網(wǎng)頁背景的方法,實例分析了遞歸調(diào)用自定義函數(shù)scrollBG實現(xiàn)動態(tài)背景特效的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 關于document.cookie的使用javascript

    關于document.cookie的使用javascript

    構造通用的cookie處理函數(shù) cookie的處理過程比較復雜,并具有一定的相似性。因此可以定義幾個函數(shù)來完成cookie的通用操作,從而實現(xiàn)代碼的復用。
    2010-10-10
  • js中日期的加減法

    js中日期的加減法

    JavaScript實現(xiàn)日期加減計算功能代碼實例,因為在js中沒有類似C#中的AddDays方法,所以要想實現(xiàn)日期加減的話,就需要自己寫函數(shù)來實現(xiàn)。
    2015-05-05

最新評論

台中市| 扎鲁特旗| 阿瓦提县| 崇仁县| 蓝田县| 辽源市| 东乡| 江都市| 五常市| 黔西| 广安市| 定陶县| 巴林右旗| 阿瓦提县| 饶平县| 视频| 晴隆县| 东乌珠穆沁旗| 林西县| 德阳市| 鄂尔多斯市| 龙川县| 凉山| 嘉善县| 隆子县| 南靖县| 甘谷县| 内黄县| 贵州省| 化德县| 阜宁县| 柘荣县| 醴陵市| 稻城县| 宜良县| 丘北县| 海原县| 边坝县| 独山县| 宜宾市| 井研县|