你还不懂filter?「JavaScript」「MDN笔记」

目录

一.filter「过滤」「是啥捏?」

例子:求长度大于6的字符串

语法:

callback

Attention Points

Demos


一.filter「过滤」「是啥捏?」

filter()方法创建了一个新数组,这个数组包含所有符合所给函数的元素。

例子:求长度大于6的字符串

const words = ['wangjiaran','yezhenkun','yewen','ryker','tom','baby'];
const result = words.filter(word => word.lenth > 6);
console.log(result);
// expected output: Array ["yezhenkun", "wangjiaran"]

语法:

var newArray = arr.filter(callback(element[,index[,array])[,thisarg])

callback

 1. 用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保    留。它接受以下三个参数:
 2. element「数组中当前正在处理的元素。」 index「正在处理的元素在数组中的索引。」 array「调用了 filter 的数组本身。」
 3. thisArg「执行 callback 时,用于 this 的值。」

Attention Points

1.如果为 filter 提供一个 thisArg 参数,则它会被作为 callback 被调用时的 this 值
否则,callback 的 this 值在非严格模式下将是全局对象
严格模式下为 undefined.
2.filter遍历的元素范围在第一次调用 callback 之前就已经确定了。
在调用 filter 之后被添加到数组中的元素不会被 filter 遍历到。
如果已经存在的元素被改变了,则他们传入 callback 的值是 filter 遍历到它们那一刻的值。被删除或从来未被赋值的元素不会被遍历到。

Demos

1.筛选排除所有较小的值

function isBigEnough(x) {
    return x > 10;
}
var arr = [1,2,3,4,5,123,322,9,54,67].filter(isBigEnough);
// console.log(arr);
// filter is[123,322,54,67];

2.过滤JSON中的无效条目

// 过滤JSON中的无效条目
var arr = [
    { id: 15 },
    { id: -1 },
    { id: 0 },
    { id: 3 },
    { id: 12.2 },
    { },
    { id: null },
    { id: NaN },
    { id: 'undefined' }
  ];
// 记录有效长度
  var invalidEntries = 0;
// 
  function isNumber(obj) {
    return obj != undefined && typeof(obj) === 'number' && !isNaN(obj);
  }

  function filterByID(item) {
      if(isNumber(item.id) && item.id !== 0) {
          return true;
      }
      invalidEntries++;
      return false;
  }
  var arrByID = arr.filter(filterByID);

  console.log('Filtered Array\n', arrByID);
// Filtered Array[{ id: 15 }, { id: -1 }, { id: 3 }, { id: 12.2 }]

  console.log('Number of Invalid Entries = ',invalidEntries);
  // Number of Invalid Entries = 5

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MDN(Mozilla Developer Network)和javascript.info都是非常受欢迎的JavaScript文档和教程网站,它们在JavaScript开发社区中都享有很高的声誉。然而,它们在内容、风格和目标受众上有一些不同之处。 MDN作为Mozilla基金会的官方文档网站,提供了广泛的Web技术文档,包括JavaScript。它的内容非常全面,详细介绍了JavaScript的各个方面,从语法基础到高级概念和API参考都有涉及。MDN的文档通常更加正式、详实,并且有良好的组织结构和维护。 javascript.info是由一位独立开发者编写和维护的教程网站,旨在提供简洁、易于理解的JavaScript教程。它以教学为主,适合初学者和中级开发者。javascript.info的教程风格更加友好、亲切,并且提供了大量的实例和示例代码。 关于哪个网站更权威,这取决于你所追求的目标和需求。如果你需要详细、全面的参考文档和规范解释,MDN是一个非常可靠的选择。如果你是初学者或更倾向于通过教程来学习和理解JavaScriptjavascript.info提供了更加友好和易于理解的教程。 在实际开发中,建议结合两个网站的内容,根据自己的学习和开发需求来查阅和参考。不同的网站可能在某些主题或方面提供了不同的解释和示例,多方参考可以帮助你获得全面的理解和知识。同时,也可以参考其他可靠的资源,如官方规范、书籍和其他开发者社区的贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值