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 遍历到它们那一刻的值。被删除或从来未被赋值的元素不会被遍历到。 示例:

/*
filter()实例:筛选排除掉所有的小值​

下例使用 filter 创建了一个新数组,该数组的元素由原数组中值大于 10 的元素组成。

*/

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

console.log(filtered);//[ 12, 130, 44 ]

/*
  filter()兼容旧环境
  filter 被添加到 ECMA-262 标准第 5 版中,因此在某些实现环境中不被支持。可以把下面的代码插入到脚本的开头来解决此问题,
  该代码允许在那些没有原生支持 filter 的实现环境中使用它。该算法是 ECMA-262 第 5 版中指定的算法
*/

Array.prototype.filter = Array.prototype.filter || function(func) {
var arr = this;
var r = [];
for (var i = 0; i < arr.length; i++) {
if (func(arr[i],i,arr)) {
r.push(arr[i]);
}
}
return r;
}

最新文章

  1. Codeforces CF#628 Education 8 A. Tennis Tournament
  2. 淘宝分布式NOSQL框架:Tair
  3. JSTL和EL的区别
  4. SSH applicationContext.xml文件配置
  5. HDOJ 2082 找单词 (母函数)
  6. 在运行时切换 WinForm 程序的界面语言 ---------多语言设置基础
  7. leecode Binary Tree Level Order Traversal II java
  8. POJ 1113 || HDU 1348: wall(凸包问题)
  9. 基于vue2+vuex+vue-router+sass+webpack的网易云音乐
  10. Jenkins 集成 SonarQube Scanner
  11. 用SERVLET进行用户名和密码验证
  12. PHP算法学习(1) 全局唯一ID
  13. 3 Asking for more information
  14. C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子
  15. 201621123075 week06-接口、内部类
  16. Python 练习: 打印0到99小于50或大于70的数字
  17. excel中的数据粘贴不全到plsql中,excel 粘贴后空白,Excel复制粘贴内容不全
  18. 启动zookeeper时出现的问题
  19. TortoiseGit + msysgit 记住帐号密码方法及使用密匙的方法
  20. 如何理解Latency和Throughput: 吞吐量和延迟

热门文章

  1. request请求转换成对象。
  2. ZOJ 3983 Crusaders Quest(思维题)
  3. mysql 5.7.12 winx64安装配置方法图文教程
  4. 2017-2018-2 《网络对抗技术》 20155322 Exp 5 MSF基础应用
  5. JavaWeb总结(六)
  6. sklearn常见分类器的效果比较
  7. PHP 练习(投票)
  8. CSS快速入门-定位布局(九宫格)
  9. [转载]在Windows下为PHP5.6安装redis扩展和memcached扩展
  10. 开源第三方登录组件OAuthLogin2.0 架构解析及开源地址