javascript中数组的几种常用方法(filter、map、reduce……)

1.filter 方法

        filter方法用于对数组元素进行筛选,其返回一个新数组,新数组中的元素为原数组中所有符合筛选条件的元素,但不改变原数组的元素;

        语法:

        const newArr = arr.filter(function(element,index) { return 筛选条件 })

        如下:

const arr = [23,41,56,21,89,28,34]
const newArr = arr.filter(function(element,index) {
    // 筛选出30-70之间的数据
    return element>=30 && element <=70
})

console.log(newArr) //[41,56,34]

        写成箭头函数:

const arr = [23,41,56,21,89,28,34]
const newArr = arr.filter(element => element>=30 && element<=70)
console.log(newArr) //[41,56,34]

2.map方法

        map方法用于对数组中所有元素进行处理,其返回一个新数组,新数组中的元素为原数组处理之后的数组元素,不改变原数组的值;

        语法:

        const newArr = arr.map(function(currentValue,index,arr),thisValue) //currentValue为数组当前元素值,arr为当前元素属于的数组对象(可选),thisValue执行回调时使用;

        如下:

const arr = [23,41,56,21,89,28,34]
const newArr = arr.map(function(element,index) {
   // 将数组中所有数据加30
   return element+30
})
console.log(newArr) //[53,71,86,51,119,58,64]

         写成箭头函数:

const arr = [23,41,56,21,89,28,34]
const newArr = arr.map(element => element + 30)
console.log(newArr) //[53,71,86,51,119,58,64]

3.forEach方法

        forEach方法常用于对数组进行查找或遍历,不改变原数组的值;

        语法:

        arr.forEach( function( element, index, array), thisArg )  //element为当前正在处理的元素

        如下:

const arr = [23,41,56,21,89,28,34]
arr.forEach((item) => item > 40 ? console.log(item):'') //输出 41,56,89

4.reduce方法

        reduce方法返回累计处理的结果,常用于求和等处理;

        语法:

        arr.reduce(function(上一次的值,当前值) { ... },初始值) 

        如下:

const arr = [23,41,56]
//对arr数组求和

// 1.没有初始值
const sum = arr.reduce((prev,current) => prev+current)
console.log(sum) //120

// 2.有初始值
const sum1 = arr.reduce((prev,current) => prev+current,20)
console.log(sum1) //140

5.find方法

        返回数组中第一个满足条件的值,否则返回undefined;

        语法:

        arr.find(function (element,index) {...} ) // 查找满足条件的元素的过程也是在遍历

        如下:        

const arr = [
    {
        name:'huihui',
        age:18
    },
    {
        name:'guigui',
        age:20
    },
    {
        name:'bubu',
        age:23
    }
]
const obj = arr.find((element,index) => element.name === 'huihui')
console.log(obj) //{name:'huihui',age:18}

6.findIndex方法

        与find方法类似,但findIndex方法返回的是第一个满足条件的元素的索引值;

        如下:

const arr = [
    {
        name:'huihui',
        age:18
    },
    {
        name:'guigui',
        age:20
    },
    {
        name:'bubu',
        age:23
    }
]
const i = arr.findIndex((element,index) => element.name === 'huihui')
console.log(i) //0

7.every方法       

        用于检测数组中的元素是否满足某一条件,当所有数组元素满足特定条件时返回true,否则返回false;        

如下:

const arr = [23,41,56]

//arr数组中的元素是否都大于10
console.log(arr.every(element => element > 10)) //true 所有都满足条件
console.log(arr.every(element => element > 50)) //false 只有56满足条件

8.some方法

        用于检测数组中的元素是否满足某一条件,当存在一个或多个数组元素满足特定条件时返回true,否则返回false;       

        如下:

const arr = [23,41,56]

//arr数组中的元素是否都大于10
console.log(arr.some(element => element > 50)) //true  只有56满足条件
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值