zoukankan      html  css  js  c++  java
  • [译]Javascript数列filter方法

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单

    源地址在此:

    https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b

    filter()方法会制造一个新的数列,然后根据callback函数的条件来填充这个数列

    格式:array.filter(callbackFunction[,thisArg])

    参数

    callbackFunction -- 必须,数列的每一个元素都会call这个函数.如果函数返回真,则元素保留,反之则被过滤掉

    thisArg -- 非必须,一个可以在callback函数中被this关键字refer的对象

    filter方法对于数列中的每一个元素都会呼出这个callback函数.如果对于每一个元素,callback函数都返回假,那么新数列的长度则为0

    callback函数格式

    function callbackFunction(value, index, array)

    callback函数的参数

    value -- 数列中的元素的值

    index -- 数列中元素的index位置

    array -- 包含元素的源数列对象

    例子1: 从myArray中只获取所有的偶数

    // Callback function
    function IsEven(value, index, array) 
    {
        if (value % 2 == 0) 
        {
            return true;
        }
        else 
        {
            return false;
        }
    }
    
    // Source array
    var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    // Pass the callback function as argument to the filter method
    var result = myArray.filter(IsEven);
    
    document.write(result);

    Output : 2,4,6,8,10

    例子2: 在例子1中我们先定义了一个callback函数,然后将其作为filter方法的参数.在以下的例子中,我们则将callback函数在filler方法中作为匿名函数造出来

    // Source array
    var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    
    // callback function created directly in the filter method as anonymous function
    var result = myArray.filter(function (v, i, a) { return v % 2 == 0 });
    
    document.write(result);

    Output : 2,4,6,8,10

    例子3:将Javascript数列中的重复项移除

    var myArray = ["Sam", "Mark", "Tim", "Sam"];
    
    var uniqueItems = myArray.filter(function (v, i, a) { return a.indexOf(v) == i });
    
    document.write(uniqueItems);

    Output : Sam,Mark,Tim

  • 相关阅读:
    浅谈随机化算法
    SPSS问题
    羽毛球技术
    三大线性排序之桶排序
    Java产生随机数
    Java堆栈详解
    三大线性排序之基数排序
    指针 和 数组
    复制构造函数 与 赋值函数 的区别
    【c++】类中的const成员
  • 原文地址:https://www.cnblogs.com/otakuhan/p/7712920.html
Copyright © 2011-2022 走看看