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

JavaScript中filter的用法實(shí)例分析

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

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

filter

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

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

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

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]

把一個(gè)Array中的空字符串刪掉,可以這么寫(xiě):

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

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

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

filter()接收的回調(diào)函數(shù),其實(shí)可以有多個(gè)參數(shù)。通常我們僅使用第一個(gè)參數(shù),表示Array的某個(gè)元素。回調(diào)函數(shù)還可以接收另外兩個(gè)參數(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的重復(fù)元素:

'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());

運(yùn)行結(jié)果:

apple,strawberry,banana,pear,orange

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

嘗試用filter()篩選出素?cái)?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;
  });
}
// 測(cè)試:
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('測(cè)試通過(guò)!');
} else {
  console.log('測(cè)試失敗: ' + r.toString());
}

運(yùn)行結(jié)果:

測(cè)試通過(guò)!

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

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

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

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《javascript面向?qū)ο笕腴T教程》、《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • javascript動(dòng)畫(huà)之模擬拖拽效果篇

    javascript動(dòng)畫(huà)之模擬拖拽效果篇

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

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

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

    解決layer.confirm快速點(diǎn)擊會(huì)重復(fù)觸發(fā)事件的問(wèn)題

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

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

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

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

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

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

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

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

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

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

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

    關(guān)于document.cookie的使用javascript

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

    js中日期的加減法

    JavaScript實(shí)現(xiàn)日期加減計(jì)算功能代碼實(shí)例,因?yàn)樵趈s中沒(méi)有類似C#中的AddDays方法,所以要想實(shí)現(xiàn)日期加減的話,就需要自己寫(xiě)函數(shù)來(lái)實(shí)現(xiàn)。
    2015-05-05

最新評(píng)論

平顶山市| 兰考县| 英德市| 博罗县| 珲春市| 鸡西市| 电白县| 伊吾县| 方城县| 安远县| 团风县| 正镶白旗| 吐鲁番市| 获嘉县| 昌图县| 岳阳市| 秭归县| 和林格尔县| 阿克| 浮梁县| 宁德市| 屏东县| 建平县| 金昌市| 永城市| 怀安县| 贡觉县| 许昌县| 内江市| 香河县| 抚松县| 温泉县| 华阴市| 故城县| 高安市| 汽车| 苍溪县| 雅安市| 车险| 田东县| 玉门市|