前言
我们常用变量来存储数据,但是变量只能对应存储一个数据。对于数据很多的例子没法用变量来定义空间,所以引入了数组的概念,数组可以在一个空间中放一堆数据,方便多数据的管理。
一、内置基本类型和引用类型
1)内置基本类型:Number,String,Boolean,undefined;null
2)引用类型:object
内置类型与引用类型在内存中的存储方式:
1)内置类型:只有一个空间,这个空间直接保存变量数值,在栈区;
2)引用类型:有两个空间,一个栈空间,一个堆空间。栈存储new出来的堆空间的地址
堆空间,存储真正的数值;
二、数组定义
1.构造方法
new:关键字,用于在堆开辟新空间;
Array:数组数据类型
var arr=new Array(1,2,3,4,5);
2.字面量
var arr1=[1,2,3,4,5,6]
三、数组元素访问
数组名[下标];
下标:从零开始,可以是变量
下标取值范围:0~元素个数-1;
数组长度:length;
四、数组元素的遍历
var arr=[1,2,3,4,5,6,7,8];
for(var i=0;i<arr.lendth;i++){
console.log(arr[i]);
}
输出结果为:1 2 3 4 5 6 7 8
五、 数组逆序
var arr=[1,2,3,4,5,6,7,8];
var t=0;
for(var i=0;i<arr.lendth;i++){
t=arr[i];
arr[i]=arr[arr.length-i-1];
arr[arr.length-i-1]=arr[i];
console.log(arr[i])
}
输出结果:8 7 6 5 4 3 2 1
}
六、数组相关函数
1、push
功能:在数组尾部插入一个或多个元素
参数:push(x1,[x2...xn]);
返回值:插入数据后数组长度
2、pop
功能:删除尾部数据
参数:pop()
返回值:被删除的数据
3、unshift
功能:在头部插入一个或多个数据
参数:unshift(x1,[x2...xn]);
返回值:插入数据后数组长度
4.shift
功能:在头部删除数据
参数:shift()
返回值:被删除的数据
5.reverse
功能:数组逆序
参数:无;
返回值:无;
6.splice
功能:删除数组中元素,替换成其他元素
参数:splice(起始位置,偏移量,【替换元素】);
返回值:被删除的元素,就是一个数组
7.slice
功能:截取数组中的一段数据
参数:slice(起始位置,偏移量)
返回值:截取的数组
8.join
功能:将数组转换为字符串
参数:join(【字符串分隔符】),默认分隔符为逗号
返回值:被分割的字符串
9.concat
功能:连接两个数组
参数:concat(数组)
返回值:拼接好的新数组
七、多维数组
在JavaScript中其实没有多维数组的概念
二位数组本质还是一位数组
例如:arr=[[1,2,3],[4,5,6],[7,8]]
一个一维数组的元素是三个一维数组;
八、冒泡排序
冒泡排序就是两两比较,找出最大的那个,或者最小的那个
排N-1趟,每次排N-i-1次(i是趟数)
举例:
5,6,3,7,4,8,2,6
第0趟:交换七次
5,6,3,7,4,8,2,6
5,3,6,7,4,8,2,6
5,3,6,7,4,8,2,6
5,3,6,4,7,8,2,6
5,3,6,4,7,8,2,6
5,3,6,4,7,2,8,6
5,3,6,4,7,2,6,,,,,,8
以此类推:第一趟交换六次
var arr = [5,6,7,4,8,3,9,2,0,1];
var t;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]{
t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
总结
以上就是数组的基本使用,定义,函数的总结,重点背冒泡排序与函数的应用。