前端提高篇(二十七)JS进阶20数组与常用的数组API

for (var i in a){

console.log(a[i]);

}

运行结果:给原数组a上多增加两个内容,下标为-1和’aaaa’,length仍为4

在这里插入图片描述

数组的长度由定义时最大的下标决定,如果前面没有满,也是留出空位

在这里插入图片描述

多维数组

js本身不支持多维数组,我们是借数组元素可以是对象的这一特点,模拟出多维的效果

var a1 = [1,2,3];//一维数组

var a2 = [[1,2,3],[4,5,6],[7,8,9]];//二维数组

运行效果:

在这里插入图片描述

数组API

在这里插入图片描述

push与pop:在数组最后增加或删除元素

push在数组最后添加元素,返回添加之后的数组长度

在这里插入图片描述

可以一次push多个,以逗号隔开

在这里插入图片描述

pop删除最后一个元素,并返回被删除的这个元素

在这里插入图片描述

push和pop可用于模拟堆栈操作

unshift和shift:在数组最前添加或删除元素

unshift在数组最前面添加元素,可以一次添加多个,并按添加的顺序,直接反应到数组中,并返回添加元素后数组的长度

在这里插入图片描述

shift返回数组第一个元素:

在这里插入图片描述

concat:连接数组,并返回一个新数组,可以同时连接多个数组

在这里插入图片描述

在控制台输入a.concat(a1),返回了新的数组,与a独立,相当于是:var b = a.concat(a1);console.log(b);

splice:删除的同时,可以添加元素,可用于往数组指定位置插入元素

三个参数分别是:开始的下标,删除个数,在此位置要覆盖的元素(没有指定就相当于删除指定位置开始的指定个数元素)

var a = [0, 1, 2, 3, 4, 5];

a.splice(1, 2, ‘1’, ‘2’);

//从下标1的元素开始,删除2个元素,并在这两个位置添加’1’,‘2’

//相当于把下标1的元素改为’1’,下标2的元素改为’2’

运行效果:

在这里插入图片描述

没有写第三个参数,相当于就只有删除,没有添加

var a = [0, 1, 2, 3, 4, 5];

a.splice(1, 2);

运行效果:

在这里插入图片描述

slice截取拷贝到新数组,与原数组独立

两个参数分别是:开始下标,结束下标,截取是左闭右开的[start,end)

var a = [0, 1, 2, 3, 4, 5];

var b = a.slice(1,5);//截取结果不包含a[5]

运行结果:

在这里插入图片描述

如果不写第二个参数,就从起始位置开始,一直取到最后

下标同样支持负数

在这里插入图片描述

排序之reverse和sort

reverse是逆序,在原数组上逆序

在这里插入图片描述

sort默认是正序,可以支持字符对比排序,在原数组上修改

在这里插入图片描述

制定自己的排序规则

a.sort(规则);官网解释

function f(a,b){

在规则下判断:

if(a>b):return 正整数

if(a<b):return 负整数

if(a==b):return 0

}

在这里插入图片描述

var a = [‘a’,‘ac’,‘b’,‘abc’,‘c’,‘ba’]

function f(a,b){

return a.length - b.length;//长度较短的排在前面

}

a.sort(f);

运行结果:

在这里插入图片描述

查找元素出现的第一个indexOf和最后一个索引lastIndexOf

indexOf:查找元素出现的第一个位置,也可以设置从下标n开始往后找出现的第一个位置

在这里插入图片描述

forEach:数组中每个元素都执行一次某个操作,调用forEach可以获得整个数组,各个元素的索引以及值,

var a = [‘a’,‘a’,‘b’,‘ac’,‘b’,‘abc’,‘c’,‘ba’,‘a’]

a.forEach(f);

function f(value, index, ary){

console.log(‘index:’+index + ’ value:’ + value);

}//调用forEach就能获得value, index, array

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

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

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值