1.数组的概念
数组是用来批量存储数据的一种对象,类似于数学中的集合
2.数组的定义及内存存储
数组的定义
a.构造函数
var arr = new 构造函数();
引用类型的内存存储机制与内置类型不同:
栈与堆:都是内存中的空间
内置类型存储数据:内置类型只有一块栈空间,该空间存的就是数值本身
var a = 123;
引用类型存储的方式:引用类型有两块空间,
一块栈空间,存的是new出来堆空间的地址
一块堆空间,堆空间存的是真正的数据
new是一个关键字,作用为在堆内存开辟空间
Array是构造函数,可以理解为是一个类型的模板
new Array(1,2,3,4,5):按照Array类型的模板在堆内存开辟了一个Array的空间
并且存储的元素分别为1,2,3,4,5
//注意事项:new和构造函数必须一起使用,含义为创造了一个该类型的对象
b.字面量
3.数组元素的使用
数组元素的访问:
数组名[下标]
数组名就是数组的名字
下标:数组元素访问时的索引
1.从0开始
2.连续的自然数
3.下标可以用变量
4.数组在访问时,千万不要越界,
下标取值范围是 0~数组长度-1
4.数组元素的遍历访问
数组遍历:对属于所有的元素进行相同的操作(依赖于循环)
数组对象.length:返回数组的长度(元素的个数)
5.数组的逆序
var arr = [5,6,7,4,8,3,9,2,0,1];
var len = arr.length;
var t;
for(var i=0; i<parseInt(len/2); i++){
t = arr[i];
arr[i] = arr[len-i-1];
arr[len-i-1] = t;
}
console.log(arr);
6.数组API
API:应用程序接口--->系统提供的函数,打点可以访问
如何学习API
1.函数的功能
2.函数的参数
3.函数的返回值
4.抄案例 无耻求demo
push
功能:尾插
参数:push(参数1,[参数2,参数3...])
返回值:数值,表示数组的新长度
pop
功能:尾删
参数:无
返回值:被删除的元素
unshift
功能:头插
参数:unshift(参数1,[参数2,参数3...])
返回值:数值,表示数组的新长度
shift
功能:头删
参数:无
返回值:被删除的元素
reverse
功能:逆序,并且改变元素组本身
参数:无
返回值:返回逆序的数组
splice
功能:指定位置删除或插入
参数:splice(起始位置,偏移量,[被插入的参数1,参数2...])
返回值:被删除的数组区间
slice
功能:截取数组区间,不会改变元数组
参数:slice(起始位置,结束位置) 左闭右开
返回值:被截取的元素
concat
功能:数组的拼接,不会改变原始数组
参数:concat(新数组)
返回值:拼接的数组
join
功能:将数组转为字符串
参数:join([分隔符]),默认不写用逗号分割
返回值:字符串
7.多维数组
多维数组:拥有多个下标的数组元素
JS本身是没有多维数组的,所有的多维数组都是通过一维数组的嵌套实现的
var arr = [
[1,2],//arr[0]
[3,4,5,6],//arr[1][0]
[7,8,9]//arr[2]
];
8.冒泡排序
冒泡排序:将数值类型数组,按照由小到大,或者由大到小的顺序排列
核心思想:两两比较
外层循环 比较多少趟:N-1趟
内层循环 每趟比较多少次:N-1-i
标签: