社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
数组的概念:引用类型的对象。
数组的创建:
数组的使用:
数组的属性:
常见操作:
for (var i=0;i<=arr.length;i++) {
arr[i];
}
数组的分类:
for(var key in arr) {
arr[key];
} 注释:key:用于每次循环保存临时变量下标的变量;in:关键词;arr:需要遍历的数组的数组名
7.总结:数组的特点:便于数据的维护和查找!
8.关联数组 vs 索引数组:关联数组:查找更快,效率更高。原因:直接定位元素,查找速度不受元素个数影响;索引数组:相对较慢!原因:只能遍历查找,查找效率受元素个数,位置影响!
数组的API
3.1 string(arr); arr.toString();
3.2 以上两个API都可以将索引数组转为字符串。------将数组中每个元素转为string然后之间用“,”拼接。
3.3 arr.join(“拼接符”);将数组中的每个元素按指定的拼接符拼接。注意:如果省略拼接符,默认用“,”拼接。
3.4 固定套路:var str="<ANY>"+arr.join("</ANY><ANY>")+"</ANY>"
elem.innerHTML=str;
4.数组的拼接与选取
4.1 拼接:将多个元素或数组拼接为一个新数组;
var new_arr=old_arr.concat(值,数组);
注意:concat();返回新数组,不修改原数组;如果需要拼接的是一个数组,将数组中的元素打散为一个个元素在拼接!
4.2 选取:选择数组中指定位置之间的元素,组成新数组返回。
var new_arr=old_arr.slice(starti,endi);
注意:不修改原数组
如果一个API两个参数都是下标,一般含头不含尾!slice(starti,starti+n);//n表示选取元素的个数
支持负数参数:原理使用length属性。arr.slice(starti,-n)<=>arr.slice(starti,arr.length-n);并不是所有的API都支持负数参数,使用arr.length-n。
省略第二个参数:从起始位置一直选取到结尾。var new_arr=arr.slice();
同时省略两个参数:复制数组;var new_arr=arr.slice();
5.数组的增删改----splice
5.1增加:arr.splice(starti,0,值1,值2,值3......值n);
注意:在指定位置插入新值后,后续所有位置依次后移;如果插入的值是数组,不会打散,之间将数组插入指定位置。
5.2删除:arr.splice(starti,n); //从starti位置开始删除n个元素
注意:直接修改原数组;支持负数参数;可以省略第二个参数----一直删到结尾;有返回值----被删除的元素组成的新数据。
5.3修改:arr.splice(starti,n,值1,值2.....); 其实就是将原值删除,加入新值! //从starti位置开始,删除n个元素,在加入新值
注意:删除的元素不必与插入的元素个数保存一致!
6.排序:
6.1翻转----反向: arr.reverse(); //将元素组中的元素按原顺序颠倒!
注意:直接修改原数组,不返回新值;不能修改内容的顺序,只是头尾颠倒!
6.2顺序排序: arr.sort(比较器函数); //将数组中的内容按大到小/按小到大的顺序排序 !
注意:默认不传参数,将数组中的数据从小到大排序;直接修改原数组,不返回新值!
原理:sort默认将数组中的元素转为字符串,再按照字符编码比较大小!
6.3比较器函数:挨个比较两个元素之间的大小。
格式:function comp(a,b){
return a-b;
}
如果a>b,需要返回一个大于0的数!
如果a=b,需要返回一个等于0的数!
如果a<b,需要返回一个小于0的数!
7.栈:一端开口,一端封闭的数组结构!
7.1出栈,入栈:
出栈:从数组中删除一个元素。
入栈:向数组中添加一个元素。
7.2队列:两端开口的数据结构
8.二位数组:
8.1eg:var arr=[[1,2,3,4],[3,4,5,6],[6,7,8,9]];
8.2二维数组的遍历:分为两步:1、先获取二维数组中的每个子数组;2、遍历每个子数组!
完结!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!