JavaScript基础-filter

1、和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

var arr = [1, 2, 4, 5, 6, 9, 10, 15];

var r = arr.filter(function (x) {

    return x % 2 !== 0;

});

r; // [1, 5, 9, 15]


2、把一个Array中的空字符串删掉,可以这么写:

var arr = ['A', '', 'B', null, undefined, 'C', ' '];

var r = arr.filter(function (s) {

    return s && s.trim(); // 注意:IE9以下的版本没有trim()方法

});

r; // ['A', 'B', 'C']


3、回调函数

filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:

var arr = ['A', 'B', 'C'];

var r = arr.filter(function (element, index, self) {

    console.log(element); // 依次打印'A', 'B', 'C'

    console.log(index); // 依次打印0, 1, 2

    console.log(self); // self就是变量arr

    return true;

});

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JavaScript的相关语法知识:1、函数(important)基本上所有的高级语言(C、OC、JavaScri...
    天山雪莲_38324阅读 652评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,062评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,945评论 2 17
  • 如何控制alert中的换行?\n alert(“p\np”); 请编写一个JavaScript函数 parseQu...
    heyunqiang99阅读 1,105评论 0 6
  • 有人说,人生要有三个疯狂:一场说走就走的旅行;一次撕心裂肺的爱情;还有,我忘了。而 我想说的是,我还欠自己一场感情...
    77呵阅读 477评论 0 0