学会了新建数组和访问数组元素,我们开始了解一些数组的基本方法:
📖 push()方法
push(参数1,参数2,参数3…,参数n) 方法可把参数指定的元素依次添加到数组的末尾,并返回添加元素后的数组长度,其中push()可以传入多个元素,实现多元素同时插入。
我们用代码演示一下它的工作:
var arr = [1, 2, 3];
var length = arr.push(4);
console.log(“新插入的元素为:” + arr[3]);
console.log("数组的长度: " + length);
📖 unshift()方法
unshift(参数1,参数2,参数3…,参数n) 方法可把参数指定的元素依次添加到数组的前面,并返回添加元素后的数组长度。其中unshift()可以传入多个元素,实现多元素同时插入。
我们用代码演示一下它的工作:
var arr = [1, 2, 3];
var length = arr.unshift(4);
console.log(“新插入的元素为:” + arr[0]);
console.log("数组的长度: " + length);
📖 pop()方法
pop() 方法可 弹出 / 删除 数组最后一个元素,并返回弹出的元素。
我们用代码演示一下它的工作:
var arr = [1, 2, 3];
var element = arr.pop();
var length = arr.length;
console.log(“弹出/删除的元素为:” + element);
console.log("数组的长度: " + length);
📖 shift()方法
shift() 方法可删除数组第一个元素,并返回删除的元素。
我们用代码演示一下它的工作:
var arr = [1, 2, 3];
var element = arr.shift();
var length = arr.length;
console.log(“删除的第一个元素为:” + element);
console.log("数组的长度: " + length);
📖 sort()方法
sort(compare_function) 方法用于按某种规则排序数组:当方法的参数为空时,按字典序(即元素的 Unicode 编码从小到大排序顺序)排序数组元素;当参数为一个匿名函数时,将按匿名函数指定的规则排序数组元素。
我们用默认不传入参数的形式的代码给大家演示它的排序效果:
var arr = [3, 1, 2, 4, 5];
console.log(“排序前:”)
console.log(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " + arr[4]);
arr.sort();
console.log(“排序后:”)
console.log(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " + arr[4]);
📖 reverse()方法
reverse() 方法可返回当前数组倒序排序形式。
我们用代码演示一下它的工作:
var arr = [1, 2, 3, 4, 5];
console.log(“倒序前:”)
console.log(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " + arr[4]);
arr.reverse();
console.log(“倒序后:”)
console.log(arr[0] + " " + arr[1] + " " + arr[2] + " " + arr[3] + " " + arr[4]);
📖 slice()方法
slice() 方法返回包含从数组对象中的 第1个索引值 到 第二个索引值 - 1 之间的元素组成的新子数组。
我们用代码演示一下它的工作:
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.slice(1, 4);
console.log(“子数组的长度:” + arr2.length);
console.log(“子数组的元素:” + arr2[0] + " " + arr2[1] + " " + arr2[2]);
III. 掌握数组:数组的进阶方法
接下来,我们来看看数组有哪些比较高端的进阶方法:
📖 splice()方法
splice方法就比较复杂了,它有三个形态,我们来看看:
splice(参数1:index(索引值),参数2:length(长度),参数3:element(元素))
上面是splice函数的全部三个参数,根据三个参数的不同,splice可以有三种形态和功能:
(1) 删除形态:
此时注意了,第三个参数不用管了,因为都是删除了,当然不需要第三个element参数,于是:
arr.splice(index , length)
表示从索引index开始,把index 到 index + length - 1 的数组元素全部删除;
(2) 替换形态:
此时注意了,第三个参数是新元素,要替换旧的元素的新元素,于是:
arr.splice(index , length,element)
表示从索引index开始,把index 到 index + length - 1 的数组元素全部替换成element(注意,并不是说这些位置每个位置都换成element,而是这些位置先合并成一个位置,然后换成element)
在替换形态下,第二个参数length不能取值0,必须大于0,否则就会出错!
(3) 添加形态:
**此时注意了,**第二个参数length必须取值为0:
arr.splice(index ,0,element)
表示把element放在数组索引index的位置上,同时原来的元素以此后移一位(注意是后移/插入,并不是直接把该位置的元素给替换了)
我们一一用代码演示一下:
var arr = [1, 2, 3, 4, 5];
arr.splice(0, 2);
console.log(“执行删除后数组的长度:” + arr.length);
console.log(“执行删除后数组的元素:” + arr[0] + " " + arr[1] + " " + arr[2]);
arr.splice(0, 2, 1);
console.log(“执行替换后数组的长度:” + arr.length);
console.log(“执行替换后数组的元素:” + arr[0] + " " + arr[1]);
arr.splice(0, 0, 5);
console.log(“执行插入后数组的长度:” + arr.length);
console.log(“执行插入后数组的元素:” + arr[0] + " " + arr[1]);
📖 forEach()方法
forEach(callback) 方法用于对数组的每个元素执行一次回调函数,传参是回调函数。
例如我们想要循环遍历一个数组,我们可以把回调函数写成这样:
var arr = [1, 2, 3, 4, 5];
arr.forEach(function (e) {
console.log(e)
})
其中,匿名函数的参数e,就是每一个数组的元素,我们可以在里面对这些元素进行批处理,我这里的处理就是控制台打印,于是可以看到:
📖 filter()方法
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
结束
一次完整的面试流程就是这样啦,小编综合了腾讯的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析,分享给小伙伴们,有没有需要的小伙伴们都去领取!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
的详细解析,分享给小伙伴们,有没有需要的小伙伴们都去领取!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算