日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

filter函数的用法_JavaScript中forEach和filter的用法和原理

發(fā)布時間:2024/10/6 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 filter函数的用法_JavaScript中forEach和filter的用法和原理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

JavaScript中有許多好用的數(shù)組方法,例如說forEach,filter...等等

那這些方法是都有什么用途呢?以及自己能否寫一個方法出來替代呢?

forEach方法

日常用法

? 我們拿到一組數(shù)據(jù)的時候,通常需要通過遍歷循環(huán)拿到自己想要的數(shù)據(jù)。 forEach函數(shù)能夠做到這一點,通常是這樣使用的。例如說我們下面數(shù)組這種,需要遍歷循環(huán)這個數(shù)組。就能得到以下結果。

參數(shù)傳遞

forEach() 方法按升序為數(shù)組中含有效值的每一項執(zhí)行一次 callback 函數(shù)。可依次向 callback 函數(shù)傳入三個參數(shù):

  • 數(shù)組當前項的值 (ele)
  • 數(shù)組當前項的索引 (index)
  • 數(shù)組對象本身 (self)
  • var arr = [{name: 'abc', desc: '技術好', sex: 'm'}, {name: 'adsds', desc: '技術好', sex: 'f'}, {name: 'aaseed', desc: '技術好', sex: 'm'},{name: 'acccc', desc: '技術好', sex: 'f'}]// forEach()arr.forEach(function (ele, index, self) {console.log(ele, ele.name, ele.sex);})

    實現(xiàn)一個forEach()方法 Array.prototype.forEach = function (func) {var len = this.length;var _this = arguments[1] != undefined ? arguments[1] : window;//_this 值的是可以傳遞this指向for (var i = 0; i < len; i++) {func.apply(_this, [this[i], i, this]);}}var obj = { name: 'feng' }function deal(ele, index, self) {console.log(ele, index, self, this);}arr.forEach(deal, obj);

    ? 就能得到一個功能相同的方法

    filter方法

    日常用法

    ? filter() 方法創(chuàng)建一個新數(shù)組, 其包含通過所提供函數(shù)實現(xiàn)的測試的所有元素。MDN如是說。例如說我們想要得到上面數(shù)組中name為accc的數(shù)據(jù)

    var newArr = arr.filter(function (ele, index, array) {return ele.name == 'acccc'})

    傳遞參數(shù)
    • callback

      用來測試數(shù)組的每個元素的函數(shù)。返回 true 表示該元素通過測試,保留該元素,false 則不保留。它接受以下三個參數(shù):

    • element數(shù)組中當前正在處理的元素。
    • index可選正在處理的元素在數(shù)組中的索引。
    • array可選調(diào)了 filter 的數(shù)組本身。
    • thisArg可選

      執(zhí)行 callback 時,用于 this 的值。

    實現(xiàn)一個myfilter方法()

    ? 想到filter能夠過濾想要的東西,那肯定是有遍歷的。

    Array.prototype.myfilter = function (func) {var arr = [];var len = this.length;var _this = arguments[1] || window;for (var i = 0; i < len; i++) {func.apply(_this, [this[i], i, this]) && arr.push(this[i]);}return arr;}var obj = { name: 'feng' }var newArr = arr.myfilter(function (ele, index, self) {if (ele.sex == 'm') {return true;} else {return false;}})console.log(newArr);

    ? 我們在調(diào)用myfilter方法把性別是男的過濾出來

    本文由博客群發(fā)一文多發(fā)等運營工具平臺 OpenWrite 發(fā)布

    總結

    以上是生活随笔為你收集整理的filter函数的用法_JavaScript中forEach和filter的用法和原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。