filter函数的用法_JavaScript中forEach和filter的用法和原理
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ù):
? 就能得到一個功能相同的方法
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 的值。
? 想到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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 的emulate函数封装_
- 下一篇: springboot事物注解不生效_Sp