JavaScript-day16-个人学习笔记
一、数组的常用API方法
API : Application Programming Interface
应用程序 编程 接口
1、字符串拼接——arr to String:
(1)var str=arr.toString()——>自动,逗号分隔
(2)var str=arr.join("连接符")——>自定义连接符;a、将字符拼接为单词:arr.join("");b、将单词拼接为句子:arr.join(" ")
优化:问题:繁体字符串拼接,造成内存浪费
解决:先将要拼接的字符串放入数组,最后,arr.join("")
2、连接数组
函数:concat()
作用:拼接两个或更多的数组,并返回拼接后的结果
语法:var newArr=arr1.concat(arr2,arr3);
注意:(1)该函数不改变现有数组,仅仅是返回拼接后的(2)每个参数可以是具体数值,也可以是数组
3、获取子数组——从某数组中,截取几个连续的元素组成新的数组
函数:slice()
语法:var subArr=arr.slice(start,[end]);
start : 从哪个下标处开始选取,取值为正,从前向后算,取值为负,则从后向前算
end : 指定结束处的下标(不包含);可以省略,如果省略的话,相当于是从 start 一直截取到结束
注意:该函数不会改变现有数组,会返回全新的子数组
4、修改数组——允许从数组中删除一部分元素,同时再添加另外一部分元素
函数:splice()
语法:arr.splice(start,count,e1,e2,...);
start : 指定添加,或删除元素的起始位置
count : 要删除的元素个数,取值为0则表示不删除
e1,e2,e3,... : 在start位置处要添加的新内容
返回值:被删除元素的数组
注意:splice 会改变现有的数组
5、数组反转——颠倒数组中元素的顺序
语法:array.reverse();
注意:该函数会改变当前数组的内容
6、数组排序
函数:sort();
语法:arr.sort(排序函数);
作用:默认情况下,按照元素的Unicode码大小按升序排列
函数对象作为参数:js中函数本质是一个对象,函数名本质是指向函数对象的变量
特殊:允许自己指定排序函数,从而实现对数字的升序和降序的排列
语法:arr.sort(排序函数);
var arr = [12,6,4,72,115,89];
//排序函数(升序)
function sortAsc(a,b){
return a-b;
}
arr.sort(sortAsc);
7、栈和队列:js中没有真正的栈和队列的类型,一切都是用数组对象模拟的
(1)栈:只能从一端进出的数组,另一端封闭
使用:
a、末尾出入栈:已入栈元素的下标不再改变
入栈:arr.push(新值1,...)
出栈:var last=arr.pop()
b、开头出入栈:每次入栈新元素时,已入栈元素的位置都会向后顺移
入栈:arr.unshift(新值1,...);
出栈:var first=arr.shift();
(2)队列:只允许从末尾进入数组,必须从开头出数组
结尾入队列:arr.push();
开头出队列:var first=arr.shift();
二、二维数组
二维数组:数组中的元素,又引用了另一个子数组对象
1、何时使用二维数组:2种
(1)只要保存横行竖列的二位数据
(2)保存上下级关系的数据时
2、如何创建二维数组:2种
(1)先创建空数组,再赋值:
var arr=[];
arr[0]=["石家庄","保定","唐山"];
arr[1]=["德州","济南","烟台"];
(2)创建数组时,同时初始化子数组:
var data=[
[0,2,2,4],
[2,4,4,8],
[16,32,16,8],
[4,2,128,4]
];
3、如何访问二维数组中的数据:arr[行下标][列下标]
强调:二维数组中,行下标不能越界!
遍历二维数组:外层循环遍历行,内层循环遍历列
var arr=[[...],[...],[...]...]
for(var r=0;r<arr.length;r++){
for(var c=0;c<arr[r].length;c++){
}
}