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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!