js高级 map( ) filter( )

本文介绍了JavaScript中的三个数组方法:map()、filter()和forEach()。map()方法用于创建一个新数组,其结果是调用数组每个元素上的函数处理后的值;filter()方法则根据提供的函数返回值为true的元素,生成一个新的数组;forEach()方法遍历数组但不返回新数组,通常用于执行某种操作。文章通过实例展示了这三个方法的使用方式和区别。
摘要由CSDN通过智能技术生成

map( ) filter( )forEach()

map( ) filter( )forEach()都是数组调用 , 遍历数组 但是具体功能不一样

map( )

详细:

调用者就是数组,用来遍历数组;返回一个新数组 对原数组中数据加工

 返回值:

 返回一个新数组, 数组中的元素为原始数组元素调用函数处理后的值

 let arr1 = [111, 222, 333];
 let newArr1 = arr1.map((element, index, array) => {
     console.log(element);
     // console.log(element, index, array);
     return element * 100;
 });
 console.log(newArr1);

参数

element

当前元素

index

当前索引

array

方法调用的数组

filter()

调用者就是数组 用来遍历数组 : 返回一个新数组 对原数组中数据过滤

 let arr1 = [111, 222, 333];
 let newArr2 = arr1.filter((e, i, a) => {
     console.log(e, i, a);
     // 返回值为true,当前项就会添加到新数组;
     return e > 200;
 });
 console.log(newArr2);

every()

实例方法every 检测数组所有元素是否都符合指定条件,如果所有元素都通过检测返回 true,否则返回 false(重点)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript 中,`filter()` 方法用于过滤数组中的元素,返回一个新的数组,新数组中的元素是符合指定条件的数组元素。 以下是 `filter()` 的基本用法: ```javascript const arr = [1, 2, 3, 4, 5]; const filteredArr = arr.filter((num) => { return num % 2 === 0; }); console.log(filteredArr); // [2, 4] ``` 上面的代码中,`filter()` 方法遍历了原数组 `arr` 中的元素,判断每个元素是否能被 2 整除,如果可以,则将其保存到新数组 `filteredArr` 中。 除了基本用法外,`filter()` 方法还有一些高级用法,下面让我们来一一介绍。 ### 1. 使用箭头函数简化语法 当回调函数只有一行代码时,可以使用箭头函数简化语法。例如: ```javascript const arr = [1, 2, 3, 4, 5]; const filteredArr = arr.filter(num => num % 2 === 0); console.log(filteredArr); // [2, 4] ``` ### 2. 使用对象数组进行筛选 如果要对一个对象数组进行筛选,可以通过访问对象的属性来实现。例如: ```javascript const people = [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'Charlie', age: 35 }, ]; const filteredPeople = people.filter(person => person.age > 30); console.log(filteredPeople); // [{ name: 'Charlie', age: 35 }] ``` ### 3. 使用正则表达式进行筛选 如果要对一个字符串数组进行筛选,可以使用正则表达式来实现。例如: ```javascript const arr = ['apple', 'banana', 'cherry', 'date']; const filteredArr = arr.filter(str => /^a/.test(str)); console.log(filteredArr); // ['apple'] ``` ### 4. 使用第二个参数指定回调函数中的 `this` 值 `filter()` 方法的第二个参数可以指定回调函数中 `this` 的值。例如: ```javascript const obj = { minAge: 30, people: [ { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'Charlie', age: 35 }, ], filterPeople: function() { return this.people.filter(function(person) { return person.age >= this.minAge; }, this); }, }; console.log(obj.filterPeople()); // [{ name: 'Bob', age: 30 }, { name: 'Charlie', age: 35 }] ``` 在上面的例子中,我们使用了 `filter()` 的第二个参数来指定回调函数中的 `this` 值为 `obj` 对象本身。这样,在回调函数中就可以访问到 `obj` 对象的属性了。 ### 5. 使用 `map()` 和 `filter()` 实现链式操作 由于 `filter()` 方法返回一个新数组,因此可以与 `map()` 方法结合使用,实现链式操作。例如: ```javascript const arr = [1, 2, 3, 4, 5]; const result = arr .filter(num => num % 2 === 0) .map(num => num * 2); console.log(result); // [4, 8] ``` 在上面的例子中,我们先使用 `filter()` 方法筛选出原数组中的偶数,然后再使用 `map()` 方法将每个偶数乘以 2,最终返回一个新数组 `[4, 8]`。 希望这些高级用法能够对你理解 `filter()` 方法有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值