编程教育资源分享平台

网站首页 > 后端开发 正文

ES6 数组的map、filter、find、findIndex、every、some方法讲解

luoriw 2024-01-31 12:32:43 后端开发 16 ℃ 0 评论

在前端开发中,ES6的使用越来越广泛。现在老K为大家总结一下ES6中数组的新方法。

map方法:

可以简单的理解为映射

var arr = [1,2,3,4]
console.log( arr.map((n)=>n*n) ); //[1,4,9,16]
console.log( arr.map((n)=>n-1) );//[0,1,2,3]

filter方法:

var users = [
{name:'张三', email:'zhang@email.com'},
{name:'李四', email:'li@email.com'},
{name:'王五',email:'wang@email.com'}
];
//获取所有人的email
var emails = users.map( item => item.email )
console.log(emails.join(',')) //"zhang@email.com","li@email.com","wang@email.com"
//获取指定人的email
var wangEmail = emails.filter(email => /^wang/.test(email))
console.log(wangEmail.join('')) //"wang@email.com"

获取用户列表里的所有用户的email,可以用map方法。map方法通过传一个参数,这个参数就代表users里的每一项,map内部通过遍历所有的用户项,获取到每个用户项的email,再push到一个数组,再作为值给我们返回。第二步,我们需要获取指定人的email,filter方法登场了,通过过滤筛选数组emails,给我们返回结果,筛选方法得我们定,这里筛选方法是以正则匹配到wang开头的那一个email,然后返回。

find方法:

[1, 4, -1, 10].find(n => n < 0) // -1

find方法比较好理解,这里的参数n代表数组里的每一项,然后find方法内部通过遍历数组里的每一项,找到<0的这一项( -1 )。

findIndex方法:

findIndex方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。看一个例子:

[1, 3, -5, 11].findIndex((value,index,arr) => value < 0) //2

在这个例子当中,value代表这个数组的每一项,1,3,-5,11。index代表每一项的索引值,arr代表这个数组[1, 3, -5, 11],然后我们需要返回的是<0的这一项的索引值,即是2了。

这4个方法内部机制都有一个遍历过程,比起forEach确实简洁多了。

every方法:

let numbers = [2, 4, 10, 4, 8];
let a = numbers.every( (item,index) => {
 if(item%2 === 0){
 
 return true
 }else{
 
 return false
 
 }
} )
console.log(a) //true

every()方法必须所有都返回true才会返回true,哪怕有一个false,就会返回false。

some方法:

let numbers = [2, 4, 10, 4, 9];
let b=numbers.some((item,index) => {
 if(item%3 === 0){
 
 return true
 
 }else{
 
 return false
 
 }
})
console.log(b) //true

some方法 只要其中一个为true 就会返回true的。

every()和 some()目的:确定数组的所有成员是否满足指定的条件。


本文为原创内容,若转载请注明出处,转发感激不尽。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表
最新留言