当前位置:网站首页 > Vue.js开发 > 正文

js数组方法哪些会改变原数组(js数组方法哪些会改变原数组的大小)



作为一名前端开发人员,我们每天都会与数组打交道。 也提供了很多操作数组的原生 供我们调用。在这些方法里面,有的方法会改变原数组,有些不会改变原数组。别看这一点小小的区别,往往会造成巨大的影响,特别是在算法层面,有可能会造成算法复杂度的飙升。

今天我们就来好好理一理哪些数组方法操作会改变原数组,哪些数组方法不会改变原数组。

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

作用:

接收一个测试函数,也可以叫做条件函数,最终返回满足该测试函数的元素的索引位置,如果没有找到符合条件的元素,则返回。如果满足条件的有多个,那么只会返回第一个满足条件的元素索引。

示例代码:

 
  

数组方法基本上每一版本的 中都会增加一些,本篇文章主要总结了我们开发中比较常用而且容易混淆的。至于为什么要区分是否更改原数组,那就得根据实际情况来决定了。打个比方,如果有一道算法题,可以用数组方法中的 和 来解决,那么选用哪一个呢?首先 会改变原数组,它的事件复杂度是 ,而 方法不会改变原数组,它的时间复杂度是 ,改用哪个一目了然。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【点下方卡片】免费领取:






到此这篇js数组方法哪些会改变原数组(js数组方法哪些会改变原数组的大小)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue生命周期常用的四个钩子函数(vue中常用的生命周期钩子函数)2025-06-20 15:45:10
  • js深拷贝和浅拷贝如何实现(js深拷贝与浅拷贝的区别)2025-06-20 15:45:10
  • vue中的钩子函数有哪些(vue11个钩子函数)2025-06-20 15:45:10
  • vue路由守卫应用场景(vue3.0路由守卫)2025-06-20 15:45:10
  • jquery跨域请求(jquery jsonp跨域)2025-06-20 15:45:10
  • plsql7.15注册码(plsql的注册码)2025-06-20 15:45:10
  • Vue安装脚手架(vue 安装脚手架)2025-06-20 15:45:10
  • vue 钩子函数(vue钩子函数是什么)2025-06-20 15:45:10
  • map转json字符串 fastjson(map转json字符串 空没有字段)2025-06-20 15:45:10
  • vue钩子函数是什么(vue8个钩子函数)2025-06-20 15:45:10
  • 全屏图片