array的api——filter函数的使用学习
来源:互联网 发布:黑客数据论坛 编辑:程序博客网 时间:2024/05/16 04:47
1、filter()
概述
**filter()**
方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。
语法
arr.filter(callback[, thisArg])
参数
callback
- 用来测试数组的每个元素的函数。调用时使用参数 (element, index, array)。
返回true表示保留该元素(通过测试),false则不保留。 thisArg
- 可选。执行
callback
时的用于this
的值。
描述
filter
为数组中的每个元素调用一次 callback
函数,并利用所有使得 callback
返回 true 或 等价于 true 的值 的元素创建一个新数组。callback
只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback
测试的元素会被跳过,不会被包含在新数组中。
callback
被调用时传入三个参数:
- 元素的值
- 元素的索引
- 被遍历的数组
如果为 filter
提供一个 thisArg
参数,则它会被作为callback
被调用时的 this
值。否则,callback
的this
值在非严格模式下将是全局对象,严格模式下为 undefined
。
The this
value ultimately observable by callback
is determined according to the usual rules for determining thethis
seen by a function.
filter
不会改变原数组。
filter
遍历的元素范围在第一次调用 callback
之前就已经确定了。在调用 filter
之后被添加到数组中的元素不会被 filter
遍历到。如果已经存在的元素被改变了,则他们传入 callback
的值是 filter
遍历到它们那一刻的值。被删除或从来未被赋值的元素不会被遍历到。
使用实例,nodejs文件过滤:
filter-md:
var fs = require('fs')
var path = require('path')
module.exports = function (dir, filterStr, callback) {
fs.readdir(dir, function (err, list) {
if (err)
return callback(err)
list = list.filter(function (file) {
return path.extname(file) === '.' + filterStr
})
callback(null, list)
})
}
main:
var filterFn = require('./md.js')
var dir = process.argv[2]
var filterStr = process.argv[3]
filterFn(dir, filterStr, function (err, list) {
if (err)
return console.error('There was an error:', err)
list.forEach(function (file) {
console.log(file)
})
})
0 0
- array的api——filter函数的使用学习
- api学习:hbase的filter
- Jsp学习——filter的使用
- Jsp学习——filter的使用
- Jsp学习——filter的使用
- Array.prototype.filter()的实现
- Swift 4.0 数组(Array)之过滤器(filter)的使用
- MATLAB 中 filter 函数的使用
- python中filter函数的使用问题
- Revit API 开发 (3): 一个使用过滤器(filter)的例子
- python学习——Python3.x版本中filter(),map()函数的变化
- Array的sort函数使用总结
- Python学习(四)——filter函数
- js中Array.filter()的妙用
- 神奇的filter函数
- filter()函数的用法
- 你真的会使用ES5 Array API吗?
- Array的内置方法api
- iOS 状态栏的颜色设置
- java设计模式学习-代理模式
- java入门教程-2.1Java数据类型以及变量的定义
- 使用Redis保存Spring session(基于XML配置文件)
- python学习05-映射和集合类型
- array的api——filter函数的使用学习
- eclipse builder的网址及安排插件的方法
- 指针理解入门(若读懂这些)
- java入门教程-2.2 Java数据类型转换(自动转换和强制转换)
- Lisk计划将侧链放在去中心化应用程序中
- Mini2440裸板编程——Nand Flash
- Linux基础命令的操作(一)之基本操作
- 使用expandlistView实现2级菜单时数据的封住问题
- 堆栈信息打印