视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
关于js数组filter的用法
2020-11-27 19:33:38 责编:小采
文档


这篇文章主要介绍了关于js 数组filter 方法的使用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

filter()方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。

filter()基本语法:
 arr.filter(callback[, thisArg])

filter()参数介绍:
 参数名 说明
 callback 用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)
 返回true表示保留该元素(通过测试),false则不保留。
 thisArg 可选。执行 callback 时的用于 this 的值。

filter()用法说明:

 filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或 等价于 true 的值 的元素创建一个新数组。
 callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。

 callback 被调用时传入三个参数:

 元素的值
 元素的索引
 被遍历的数组
 如果为 filter 提供一个 thisArg 参数,则它会被作为 callback 被调用时的 this 值。否则,callback 的this 值在非严格模式下将是全局对象,严格模式下为 undefined。

 filter 不会改变原数组。

 filter 遍历的元素范围在第一次调用 callback 之前就已经确定了。在调用 filter 之后被添加到数组中的元素不会被 filter 遍历到。
 如果已经存在的元素被改变了,则他们传入 callback 的值是 filter 遍历到它们那一刻的值。被删除或从来未被赋值的元素不会被遍历到。

例子1-- 过滤小于10 的值;

 function isBigEnough(element) { 
 return element >= 10;
 }
 var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);

例子2-- 过滤对象中的数据; 多用于筛选功能;

 var arr = [
 {
 name: '小米',
 code: '01'
 },
 {
 name: "小米米",
 code: '02'
 },
 {
 name: "小明",
 code: '03'
 },
 {
 name: "大明",
 code: '"04"'
 }
 ]
 var newArr = arr.filter((v) => { return v.name.includes('明') })
 console.log(newArr); // {
 // name: "小明",
 // code: '03'
 // },
 // {
 // name: "大明",
 // code: '"04"'
 // }

下载本文
显示全文
专题