作为一名前端开发人员,我们每天都会与数组打交道。 也提供了很多操作数组的原生 供我们调用。在这些方法里面,有的方法会改变原数组,有些不会改变原数组。别看这一点小小的区别,往往会造成巨大的影响,特别是在算法层面,有可能会造成算法复杂度的飙升。
今天我们就来好好理一理哪些数组方法操作会改变原数组,哪些数组方法不会改变原数组。
1.1 push
可以说是最常用的数组操作方法了,它也非常好理解,本身就是往数组里面添加元素的意思。
作用:
方法往数组里面添加元素,返回数组的长度。
示例代码:
上段代码中 数组是变化了的, 方法返回的是数组最新的长度。
1.2 unshift
作用:
方法会在数组的开头添加一个元素,它会返回数组新的长度。
示例代码:
1.3 pop
作用:
方法从数组中删除最后一个元素,并返回该元素的值。
示例代码:
1.4 shift
作用:
方法从数组中删除第一个元素,并返回该元素的值。
示例代码:
1.5 sort
作用:
方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的 代码单元值序列时构建的。它返回的就是排序后的数组。
示例代码:
注意:
因为 的默认排序是将元素转化为字符串后排序的,所以上述代码中的排序结果可能不是我们想要的,想要获得正确的排序结果,我们可以传入一个函数,来规定排序的规则。
代码如下:
1.6 splice
作用:
方法用于添加或删除数组中的元素,如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
示例代码:
1.7 reverse
作用:
方法用于颠倒数组中元素的顺序。
示例代码:
2.1 concat
作用:
方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
示例代码:
2.2 join
作用:
方法用于把数组中的所有元素转换一个字符串,元素是通过指定的分隔符进行分隔的。
示例代码:
2.3 reduce
作用:
方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。 方法的使用情况稍微复杂,不熟悉的小伙伴建议去官网好好学学,它的应用范围还是挺宽泛的。
示例代码:
2.4 map
作用:
方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
示例代码:
2.5 forEach
作用:
方法用于调用数组的每个元素,并将元素传递给回调函数。
示例代码:
注意:
方法没有返回值,而且它也不会改变原数组,有些同学误以为 会改变原数组,通常是因为在 方法的回调函数中,我们自己做了更改原数组的操作。
2.6 filter
作用:
方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
示例代码:
2.7 slice
作用:
方法可从已有的数组中返回选定的元素。 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
示例代码:
2.8 findIndex
作用:
接收一个测试函数,也可以叫做条件函数,最终返回满足该测试函数的元素的索引位置,如果没有找到符合条件的元素,则返回。如果满足条件的有多个,那么只会返回第一个满足条件的元素索引。
示例代码:
数组方法基本上每一版本的 中都会增加一些,本篇文章主要总结了我们开发中比较常用而且容易混淆的。至于为什么要区分是否更改原数组,那就得根据实际情况来决定了。打个比方,如果有一道算法题,可以用数组方法中的 和 来解决,那么选用哪一个呢?首先 会改变原数组,它的事件复杂度是 ,而 方法不会改变原数组,它的时间复杂度是 ,改用哪个一目了然。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【点下方卡片】免费领取:
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/45839.html