数组扩展方法总结(字符串大部分都能用)

ES5

数组的遍历方式

  • for循环
  • forEach() :没有返回值,针对每个元素调用func,循环中途无法跳出。(参数:一个方法(方法里的参数:element,index,array))
  • map() :返回新的Array(由每轮循环的返回值组成),每个元素为调用func的结果。(参数:一个方法(方法里的参数:element,index,array))
  • filter() :返回符合func条件的元素数组。(参数:一个方法(方法里的参数:element,index,array))关于filter需要注意的是,每次遍历的时return的是一个布尔值而不是具体数值,当布尔值为true时才会把当前元素加入到结果的数组中
  • 需要注意的是,0 | -0 / null / undefined / ’ ’ / NaN 返回false其余都为true,-1/-2负数都为true(负数是true哦)
    比如以下代码,最终还是会返回一个正常的数字型数组。
   const arr = [5,5,4,2,4,4,2,6,1]
   const arr_filter = arr.filter((element,index,array) =>{
        return index>3;
    })

再比如这个例子,虽然我对element进行了修改,但是得到的是原值(修改后的值组成的数组是map该干的事情)

  const arr2 = [0,1,2,-1]
    const arr_filter1 = arr2.filter((element,index,array) =>{
        if(element<0)return element+2;
    })
    console.log(arr_filter1);
  • some() :返回波尔值。(参数:一个方法(方法里的参数:element,index,array))

  • every() :返回波尔值。(参数:一个方法(方法里的参数:element,index,array))

  • reduce() :返回最终值。接收一个函数作为累加器,有很多用法也可以用来比大小。(参数:一个方法(方法里的参数:上一次的返回值,当前元素,当前索引,原数组),初始值(可以是数值也可以是个数组甚至对象))

  • for in :一般用于遍历对象,遍历数组会把原型中的方法也遍历出来。

ES6

数组的遍历方式

  • find() :返回第一个符合的元素。(参数:一个方法)
  • findIndex() :返回第一个符合元素的下标。(参数:一个方法)
  • for of :遍历数组。注意方法values(),keys()和entries()。
arr.entries()

其他方法

  • Array.from() :把伪数组转化为数组。
  • Array.of() :new Array.of()可以和 new Array()互替。括号中永远为传入的元素。(new Array()则在参数一个的时候是长度)
  • copyWithin() :替换数据。(参数:替换位置,新数据来源起始位置,新数据来源结束位置(可不填))
  • fill() :填充数据。(参数:填充内容,起始位置,结束位置)起始和结束不填就全部填充。
    copeWithin()是原数组中已有元素来替换,fill()是自己定的数据

ES7

includes()
参数(搜索元素,搜索起始位置(可选))
返回一个布尔型的值,判断数组是否包含该对象。
起始位置正向从0开始,逆向从-1开始。

对比indexOf()
参数(搜索元素)
返回位置,没有就返回-1.

注意:
1、这两个都只能判断基本数据类型。
2、includes()可以检测NaN,indexOf()不可以。
3、都是严格的(===),不会进行类型转化。

ES10

数组的扁平化操作。就是把多维数组转为一位数组。

const arr = [1,2,3,[4,5,6,[7,8,9]]]

flat()
参数(深度),默认为1。 可以使用Infinity,无限的意思
拍平一级。

arr拍平一级变为[1,2,3,4,5,6,[7,8,9]]

flatMap()
相当于是map()和flat()的结合,既能遍历数组又能对结果进行扁平化操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值