Day10
1、 数组
a. 数组的操作:
-
索引(编号,序号,从0开始)
数组的第一个[0];
数组的最后一个:数组[数组.length - 1];
根据数组的长度,得到数组到length-1结束。 -
增
增加数组的长度
给你不存在的位置赋值
arr [arr.length] = “哈哈哈”; -
删
缩短数组的长度
\原有长度为5;
arr.length = 3;
更改后数组的长度为3,相应位置的数据被删除。 -
改
找到对应索引的数据,赋值(覆盖)
arr[要修改数据的索引] = “新赋值”; -
查
根据索引直接获取
arr[指定位置的索引];
b. 数组的方法
方法实质上是一个函数,数组的方法指属于数组的函数
数组的内置方法要关注的点:
功能
参数
返回值
是否修改原数组 -
push方法
功能:最后的位置新增
参数:要增加的数据,可以是多个
返回值:数组增加之后的长度
是否修改原数组:是
var res = arr.push(“aaa”,”bbbb”); -
unshift 方法
功能:开始的位置新增;
参数:增加的数据,可以是多个
返回值:数组增加之后的长度
是否修改原数组:是
var res = arr.unshift(“aaa”,”bbb”); -
pop方法
功能:删除最后一位数据
参数:无
返回值:删除的数据
是否修改原数组:是
var res = arr.pop(); -
shift方法
功能:删除第一位;
参数:无;
返回值:删除的数据;
是否修改原数组:是
var res = arr.shift(); -
join方法
功能:将数组转换成字符
参数:转成字符之后,每个数据之间的间隔符
返回值:转换结果
是否修改原数组:否
var res = arr.join(-);
var res = arr.join(“”); -
splice(翻译:拼接)方法
功能:删除并替换指定位置的数据
参数:
两个:1起始索引,2个数,不插入数据,只删除;
两个以上:1起始索引,2个数,删除,并,后面都是要插的数据
返回值:删除的数据
是否修改原数组:是
var res = arr.splice(2,1); //从第2个位置开始删除1个数据;
var res = arr.splice(2,1,”aaa”,”bbb”,”ccc”) //从第2 个位置开始删除1个数据后,插入后面的数据
var res = arr.splice(2,0, ”aaa”,”bbb”,”ccc”) //从第2个位置开始,删除0个数据后,插入后面的数据 -
slice(翻译:切片)方法
功能:截取并拷贝出子数组
参数:
一个:表示从指定位置开始截取直到结束
两个:表示从指定位置到结束位置的前一个
返回值:截取并拷贝出来的新数组
是否修改原数组:否
var res = arr.slice(1,4); -
concat 方法
功能:讲数据合并到新数组并返回
参数:任何数据,如果是数组的话,会被展开再合并进去
返回值:合并之后的新数组
是否修改原始数组:否
var res = arr.concat([4,5,6]); -
reverse 方法
功能:翻转数据
参数:无
返回值:翻转之后的数组,就是修改之后的原数组
是否修改原数组:是
var res = arr.reverse(); -
sort方法
功能:排序;默认排序规则是字符的比较规则(逐位比较,得到即停止),升序
参数:函数:function(m,n){return n-m;} m-n数值升序,n-m数值降序
返回值:排序之后的数组
是否修改原数组:是
var res = arr.sort(function(m,n){
return m-n;
})
c. 数组的分类:数组的小分类,特点:数组内的数据类型一致 -
数值数组
var arr = [3,4,5,6,6,7]; -
字符数组
var arr = [“a”,”b”,”c”]; -
布尔数组
var arr = [ “true”,”false”]; -
对象数组(JSON数组)
var objArr = [{“name:”admin”},{ name:”root”},{ name:”andriod”}]; -
数组数组(二维数组)
var twoArr = [[3,5,6,7,4],[ “a”,true,“b”],[ “hello”,“world”]];
访问方式(操作方式):
JSON数组
逐层解析
var objArr = [{“name:”admin”},{ name:”root”},{ name:”andriod”}];
指定数据:
console.log(objArr[1].name) //root;
所有数据
for(var i=0; i<objArr.length; i++){
console.log(objArr[i].name);
}
二维数组
var twoArr = [[3,5,6,7,4],[ “a”,true,“b”],[ “hello”,“world”]];
指定数据:
console.log(twoArr[2][0]😉 //hello;
所有数据:
for(var i=0; i<twoArr.length; i++){
for(var j=0; j<twoArr[i].length; j++){
console.log(twoArr[i][j]);
}
}
d. 数组的排序
- 冒泡法
- 选择法