【总结系列】对JS数组来一次总结

但是注意,不要在 Vue 中使用这种方式来去除元素,因为 Vue 的响应式系统并没有监视这种变化!!

数组的静态方法


如果没有过 Java 经验,静态方法这个表达似乎有点不太友好,其实就是定义在 Array 上的方法啦,注意是直接定义在 Array 上的,而不是原型对象上。

Array.from()

这是 ES6 新增的方法,该方法用于将两类对象转换为数组:

  • 可迭代对象(可遍历对象)

  • 类数组对象(伪数组对象)

转个字符串试试看:

//将字符串转数组

let result = Array.from(“jonas”)

result //[“j”, “o”, “n”, “a”, “s”]

当然,类数组,Set,甚至是 Map 都是可以通过该方法转换的,通过 Set 元素的唯一性和这个方法就可以实现数组去重了:

Array.from(new Set(arr))

Array.isArray()

该方法是 ES5 的方法了,所以基本可以放心使用。用于判断一个对象是否为数组,返回布尔值。

用于很简单,这里不贴代码咯。需要注意的是,Array.prototype 也是一个数组,该方法会返回 true

Array.of()

该方法用于创建数组,将不定长的参数作为数组的元素,结果返回这个新建的数组。

【示例】:

let arr = Array.of(1,2,3,4,5)

arr //[1,2,3,4,5]

数组的实例方法


实例方法就是定义在 Array.prototype 上的方法,数组实例都可以调用。

遍历器相关的方法

与遍历器相关的方法有三个:

  • entries() —— 该方法返回一个遍历器对象,该对象包含数组中每个元素的索引和值。

  • keys() —— 返回一个包含数组每个元素索引的遍历器对象

  • values() —— 返回一个包含数组每个元素值的遍历器对象

【示例】:

let arr = [1,2,3,4,5]

let result = arr.entries()

result.next() //{value: [0,1], done: false}

let result2 = arr.keys()

result2.next() //{value: 0, done: false}

let result3 = arr.values()

result3.next() //{value: 1, done: false}

遍历元素的方法

forEach()

这是最纯粹遍历数组元素的方法,该方法接受两个参数,第一个参数是回调函数,每个元素都会执行一次,函数接受三个参数,分别是当前元素的值,索引,以及原数组;第二个参数能给回调函数指定 this

该方法没有返回值。

注意,如果在 Vue 中需要遍历数组改变、去除、提取一些数据,那么请使用 mapfilter 方法。

filter()

该方法用于过滤数组元素,接受两个参数,第一个参数是一个回调函数,用于设置过滤条件;第二个参数可以设置函数中的 this

需要注意的是,该方法不会改变原数组,而是返回一个新的数组,新的数组只会留下能通过回调函数检测的元素。

【示例】:

let arr = [1,2,3,4,5]

let result = arr.filter(item => item > 2)

console.log(result) //[3, 4, 5]

map()

该方法可以给数组的元素加工,同样接受两个参数,第一个是回调函数,第二个参数可以设置函数中的 this

【示例】:

let arr = [1,2,3,4,5]

let result = arr.map(item => item * 2)

console.log(result) //[2, 4, 6, 8, 10]

every()

该方法用于测试数组中的每个元素是否都能通过某个指定函数的测试,返回一个布尔值。如果参数为空数组,则返回 true

【示例】:

let arr = [1,2,3,4,5]

let result = arr.every(item => item > 0)

console.log(result) //true

some()

every() 是相似的,上面的方法是全部通过才返回 true,而 some() 只要有一个元素通过一个函数的测试就返回 true。如果参数是一个空数组,则返回 false

let arr = [1,2,3,4,5]

let result = arr.some(item => item > 10)

console.log(result) //false

操作元素的方法

push()

该方法用于向数组末尾添加一个或多个元素,接收一个不定长参数,返回数组最新的长度。该方法会改变原数组。

pop()

删除数组的最后一个元素,返回被删除的值。该方法会改变原数组。

unshift()

向数组的开头添加一个或多个元素,该方法接收一个不定长参数,返回新的长度。该方法会改变原数组。

shift()

删除数组中的第一个元素,并返回这个值。该方法会改变原数组。

splice()

该方法可以添加,插入,修改,删除元素。这是一个多功能方法,该方法会改变原数组。

slice()

截取数组,该方法接收两个参数,分别表示开始索引和结束索引。截取的结果放到一个新数组中,该方法不会改变数组。

注意:该方法是倩考本的!

flat()

该方法用于数组的扁平化,参数表示层数。可以传入 Infinity 表示将所有层次扁平,得到一个一维数组。

copyWithin()

该方法用于复制数组的一部分到同一个数组的另外一个位置,该方法不会改变原数组。该方法接收三个参数:

  • 第一个参数是目标位置的索引

  • 第二个参数是截取片段的开始索引

  • 第三个参数截取片段的结束索引(不包括这个位置)

注意:结果会覆盖原位置上的元素,而不是插入操作

【示例】:

let arr = [1,2,3,4,5]

let result = arr.copyWithin(2,0,2)

console.log(result) //[1, 2, 1, 2, 5]

查找元素的方法

find()

返回数组中满足提供的函数的第一个元素的值,否则返回 undefined
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里免费领取

前端面试题宝典

前端校招面试题详解

视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

[外链图片转存中…(img-XKhFzps0-1713632877709)]

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里免费领取

[外链图片转存中…(img-jj7MEF4R-1713632877709)]

[外链图片转存中…(img-9rdzybnC-1713632877709)]

[外链图片转存中…(img-83t31p6Z-1713632877710)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值