JS数组常用方法整理,包括ES6

pop、push、shift、unshift

reverse、sort

concat、slice、splice

迭代方法 every some filter map foreach

...[]

Array.from

copyWithin

find、findIndex

includes

一、栈、队列方法

可以用数组模拟栈的和队列

数组尾部操作,出pop(),入push()

数组头部操作,出shift(),入unshift()

出的操作,返回移除的元素

在原数组上进行

二、排序,反转

reverse() 反转数组

sort() 数组按升序排序,可以接受一个比较函数

在原数组上进行

三、操作方法

1.contat()连接数组

concat(),接受一个或多个参数(数组或值),添加到原数组的末尾,返回新数组

不影响原数组

2.slice()提取数组中一部分,返回

slice(起始位置, 结束位置),返回这个下标范围内的项,不包括结束位置

如果参数值有负数,则用数组长度加上该数来确定响应的位置

不影响原数组

3.splice()删除、插入、替换

splice(起始位置, 删除的项数, ...插入的项)

利用这个函数可以进行删除,插入,替换

  • 删除,传两个参数
  • 插入,第二个参数传0
  • 替换,三个参数都传

在原数组上进行,返回删除的项

四、位置方法

indexOf()lastIndexOf(),返回某个元素在数组中出现的下标,没找到返回-1

一个从前往后 ,一个从后往前找

五、迭代方法

以下方法均不影响原数组(如果数组中是引用类型,则地址不改变)

以下方法都接受两个参数,要在每一项上运行的函数function(item, index, array){}函数的作用域对象(this)

1.every()和some()

他们用于查询数组中的项是否满足某个条件,返回true或false

every(),传入的函数,每一项都返回true,则返回true

some(),传入的函数,其中一项返回true,就返回true

2.filter()

把传入的函数返回true的项,组成新数组返回

用于查询符合条件的数组项

3.map()

把运行传入函数的返回值,组成新数组返回

4.foreach()

没有返回值,只是运行对数组中的每一项,运行指定的函数。

六、ES6对于数组的拓展

1.拓展运算符…

该运算符可以将一个数组变为参数序列

传参(取代apply)
Math.max(...[1, 2, 3])
合并数组(不用concat())
[...arr1, ...arr2, ...arr3]
[1, 2, 3, ...more]
解构赋值结合
const [first, ...list] = [1, 2, 3, 4, 5]
first // 1
list // [2, 3, 4, 5]
字符串转数组
[..."hello"]
// ["h", "e", "l", "l", "o"]

2.Array.from()

Array.from 将两类对象转为真正的数组:类似数组的对象,和可遍历(Iterable)对象(Set, Map)

实际应用,常见的类数组对象,如转换NodeList集合(querySelectorAll返回),转换Set, Map

3.copyWithin()

copyWithin() 将指定位置的成员赋值到其他位置,覆盖原始成员,影响原数组

Array.prototype.copyWithin(替换数据的起始位置, [从此开始读取], [到这读取结束 = length])

[1, 2, 3, 4, 5].copyWithin(0, 3)
// 从0开始替换
// 从3-length读取数据 [4, 5],替换0开始的[1, 2]
// [4, 5, 3, 4, 5]

4.find()和findIndex()

两者都接受一个function(item, index. arr){}

函数第一个返回true对应的项(item或index被返回)

find(),返回第一个符合条件的成员item

findIndex,返回第一个符合条件成员的index

5.includes()

includes() 返回一个布尔值,判断数组中是否包含给定的值

ES5中使用 indexOf() !== -1,不够语义化和直观

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值