JS中的filter()


JS中的filter()

一、语法

array.filter(function(currentValue, indedx, arr), thisValue) 

二、参数描述

currentValue:必须。当前元素的值;
index:可选。当前元素的索引值;
arr:可选。当前元素属于的数组对象;
thisValue:可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"。

三、注意

  • filter用于对数组进行过滤。
  • 它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
  • 注意:filter()不会对空数组进行检测、不会改变原始数组

四、实例

原始数组

var arr = [3,9,4,3,6,0,9]; 

1. 返回数组nums中所有大于5的元素。

function max5(arr){
     return arr.filter((x) => x > 5});
}
//ES6语法:箭头函数(参数1, 参数2 ...) => { 函数体 }
//如果有且仅有 1 个形参,则()可以省略
//如果函数体内有且仅有 1 条语句,则{}可以省略,但前提是,这条语句必须是 return 语句。

2. 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组

function remove(arr, item) { return arr.filter(val => val != item); } 

3. 数组去重

var r = arr.filter(function (element, index, self) { return self.indexOf(element) == index; }); 

去除重复元素依靠的是indexOf总是返回第一个元素的位置,后续的重复元素位置与indexOf返回的位置不相等,因此被filter滤掉了。

4. 在数组 arr 中,查找值与 item 相等的元素出现的所有位置

输入
['a','b','c','d','e','f','a','b','c'] 'a'
输出
[0, 6]
function findAllOccurrences(arr, target) { var res=[]; arr.filter(function(ele,index){ return (ele===target)&&res.push(index); }) return res; } 

五、高级应用

待续

六、参考

JS中filter的用法 - 只争朝夕,不负韶华 - 博客园


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM