JS的数组操作

1. JS 的reduce和filter方法

1.1 reduce

比如求和,【(s,t)】是必须

const nums=[1,2,3,4]
//init是初始值
const init = 10
const sum = nums.reduce((s,i) =>s+(i||0),init) //20

初始值很重要,如果不给初始值,那么默认情况下,s就是第一个值,i 就是第二个值。

但是,这里是要统计,所以初始状态下,s就应该是一个{}对象默认i就是第一个值

const nums=["l","l","l","l","l","s","s","h"]
//统计nums中元素出现的次数
//初始值在箭头函数逗号后面
const tongji = nums.reduce((s,i) =>{
    s[i] = (s[i] || 0 )+ 1
return s
},{})

注意: 箭头函数什么时候要return

//没有大括号时,不需要
const wu  = nums.reduce((s,i)=>s+i)
//有大括号时,需要
const you = nums.reduce((s,i)=>{
    s=s+i ; return s
})

1.2 filter方法

第一个参数是(子元素,当前索引) , filter 只能返回原始数组中的元素

const nums=[1,2,3,4,5,6,7,"songha","songhadebut"]
// 筛选出偶数
const even = nums.filter(i=> (i%2==0))
// 数字没有includes语句,要转为字符串
const myHusband = nums.filter(num => (num.toString().includes("songha"))) //数字没有这个
// 按照索引,打印第偶数个
const evenNum = nums.filter((num,index) => (index%2==0))
posted on 2025-11-14 14:26  gagafan  阅读(2)  评论(0)    收藏  举报