📜  如何使用 JavaScript 映射、减少和过滤 Set 元素?

📅  最后修改于: 2022-05-13 01:56:28.122000             🧑  作者: Mango

如何使用 JavaScript 映射、减少和过滤 Set 元素?

map()、reduce() 和 filter() 是数组函数,它们根据应用的函数转换数组并返回更新后的数组。它们用于编写简单、简短和干净的代码来修改数组,而不是使用循环。

  • map() 方法:它将给定函数应用于数组的所有元素并返回更新后的数组。它是更简单、更短的代码,而不是循环。该地图类似于以下代码:
    arr = new Array(1, 2, 3, 6, 5, 4);
    for(int i = 0; i < 6; i++) {
        arr[i] *= 3;
    }
    

    句法:

    array.map(function_to_be_applied)
    array.map(function (args) {
        // code;
    })
    

    例子:

    function triple(n){
        return n*3;
    }    
    arr = new Array(1, 2, 3, 6, 5, 4);
      
    var new_arr = arr.map(triple)
    console.log(new_arr);
    
    Output: 
    [ 3, 6, 9, 18, 15, 12 ]
    
  • reduce() 方法:它通过重复应用函数将数组的所有元素减少为单个值。它是使用循环并更新每个扫描元素的结果的替代方法。 Reduce 可以用来代替下面的代码:
    arr = new Array(1, 2, 3, 6, 5, 4);
    result = 1
    for(int i = 0; i < 6; i++) {
        result = result * arr[i];
    }
    

    句法:

    array.reduce(function_to_be_applied)
    array.reduce(function (args) {
        // code;
    })
    

    例子:

    function product(a, b){
        return a * b;
    }
    arr = new Array(1, 2, 3, 6, 5, 4);
      
    var product_of_arr = arr.reduce(product)
    console.log(product_of_arr)
    

    输出:

    720
  • filter() 方法:它过滤数组中对应用条件返回 false 的元素,并返回包含满足应用条件的元素的数组。它是一个更简单、更短的代码,而不是使用循环的以下代码:
    arr = new Array(1, 2, 3, 6, 5, 4);
    new_arr = {}
    for(int i = 0; i < 6; i++) {
        if(arr[i] % 2 == 0) {
             new_arr.push(arr[i]);           
        }
    }
    

    句法:

    array.filter(function_to_be_applied)
    array.filter(function (args) {
        // condition;
    })
    

    例子:

    arr = new Array(1, 2, 3, 6, 5, 4);
    var new_arr = arr.filter(function (x){
        return x % 2==0;
    });
      
    console.log(new_arr)
    

    输出:

    [ 2, 6, 4 ]