JavaScript 如何同时使用map和filter对数组进行操作

JavaScript 如何同时使用map和filter对数组进行操作

给定一个数组,任务是同时使用map和filter函数对给定的数组进行操作。首先,让我们简要介绍一下map和filter函数:

JavaScript的filter()方法: 该方法返回一个新的数组,其中包含原始数组上通过某个测试的元素。

语法:

let newArray = oldArray.filter((currentValue, index, array) {
    // Returns element to new Array
});

参数:

  • currentValue: 当前元素的值。
  • index: 当前元素的数组索引。
  • array: 当前元素所属的数组对象。

    返回类型: 一个包含满足函数条件的过滤元素的新数组对象。

    JavaScript map()方法: 该方法用于在数组的每个元素上应用一个函数,并返回一个与输入数组大小相同的新数组。

语法:

let newArray = oldArray.map((currentValue, index, array) {
    // Returns element to new Array
});

参数:

  • currentValue: 当前元素的值。
  • index: 当前元素在数组中的索引。
  • array: 当前元素所属的数组对象。

返回值: 返回一个新数组,其中的元素是回调函数的结果。

方法: 首先,使用filter()函数从数组中检索满足给定条件的元素。因为filter()方法会返回包含所需元素的数组。然后,我们将应用map()方法对filter()方法返回的数组中的所有元素执行指定操作。

示例: 在此示例中,我们将实现上述方法。

/* Printing the name of students who play 
basketball using filter and map method 
simultaneously. */
  
// Taking an array of Student object 
let students = [ 
    { id: "001", name: "Anish", sports: "Cricket" }, 
    { id: "002", name: "Smriti", sports: "Basketball" }, 
    { id: "003", name: "Rahul", sports: "Cricket" }, 
    { id: "004", name: "Bakul", sports: "Basketball" }, 
    { id: "005", name: "Nikita", sports: "Hockey" } 
] 
  
/* Applying filter function on students array to 
retrieve those students Objects who play 
basketball and then the new array returned by 
filter method is mapped in order to get the name 
of basketball players instead of whole object.*/
let basketballPlayers = students.filter(function (student) { 
    return student.sports === "Basketball"; 
}).map(function (student) { 
    return student.name; 
}) 
  
console.log("Basketball Players are:"); 
  
// Printing out the name of Basketball players 
basketballPlayers.forEach(function (players) { 
    console.log(players); 
});

输出:

Basketball Players are:
Smriti
Bakul

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程