数组:
1.什么是数组:数据的组合,一组数据,当需要操作多个类似数据时,可以给
数据打包,数组。
数组其实也是对象,只是存储数据的形式不一样
数组表示数据的有序集合
1.如何得到数组:
字面量创建
var arr = [];
console.log(arr);
console.log(typeof arr); 类型object
构造函数创建
var arr = new Array();
console.log(arr);
console.log(typeof arr); 类型object
数组写字面量和构造函数有什么区别:
当字面量内只有一个数值型数据时,表示一个数据
当构造函数内置有一个数值型数据时,表示数组的长度
如何操作数组:
索引操作:
修改:其实就是赋值,找到对应的索引数据赋值覆盖
增加:增加数组的长度,给不存在的位置赋值
删除:强行缩短数组的长度
查询:根据索引直接获取
数组的方法:(直接使用索引操作不方便,所以使用数组的方法)
最后一位新增:arr.push();
1.功能:最后一位新增
2.参数:要增加的数据,可以是多个
3.返回值:数组增加之后的长度
4.是否修改原数组:是
开始的位置新增:arr.unshift()
1.功能:开始的位置新增
2.参数:要增加的数据,可以是多个
3.返回值:数组增加之后的长度
4.是否修改原数组:是
删除最后一位:arr.pop()
1.功能:删除最后一位
2.参数:无
3.返回值:删除的数据
4.是否修改原数组:是
删除第一位:arr.shift()
1.功能:删除第一位
2.参数:无
3.返回值:删除的数据
4.是否修改原数组:是
将数组转成字符:arr.join()
1.功能:将数组转成字符
2.参数:转成字符之后,每个数据之间的间隔符
3.返回值:转换结果
4.是否修改原数组:否
删除并替换指定位置:arr.splice()
1.功能:删除并替换指定位置
2.参数:两个:1起始索引 2删除的个数
两个以上:1起始索引 2删除的个数,后边的数据插入
3.返回值:数组增加之后的长度
4.是否修改原数组:是
截取并拷贝子数组:arr.slice()
1.功能:截取并拷贝子数组
2.参数:一个:表示从指定位置开始截取到结束
两各:表示从指定位置到结束位置的前一个
3.返回值:截取并拷贝出的新数组
4.是否修改原数组:否
数组排序:arr.sort()
数组的排序-冒泡排序:
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]){
var ls = arr[j];
arr[j] = arr[j+1];
arr[j+1]=ls;
}
}
}
console.log(arr);
数组的排序-选择排序:
for(var i = 0;i<arr.length-1;i++){
var ls = arr[i];
var lsindex = i;
for(varj=i+1;j<arr,length;j++){
if(ls>arr[j]){
ls = arr[j];
lsindex = j;
}
}
arr[lsindex] = arr[i];
arr[i] = ls;
}