前端~初学自用~数组
什么是数组
Array系统内置对象
一组数据的集合,
有个length属性代表数组的长度,(可以改变)
以数字为索引,索引从0开始到length-1结束。
数组的形式
操作方法:
首位操作:
1、给数组尾部添加数据
数组.push(元素1,元素2…)
参数:要添加的数据,可以是一个也可以多个
返回值:返回添加数组的长度,原数组改变,变成添加后的数组。
2、把数组的最后一项数据删除pop()
数组.pop()
参数:无参;
3、给数组的前面添加数据。unshift()
数组.unshift(元素1,元素2。。。)
参数:要添加的数据。
返回值:添加后的新数组的长度,原数组改变,变成添加后的数组
4、删除数组的第一项 shift()
数组.shift()
参数:无参
小节:给数组首尾添加数据unshift(),push()。删除数组的第一项shift(),最后一项 pop();
5、join()
作用:把数组变成字符串。
语法:数组.join(separator)
参数:separator是一个连接符,把数组连接成一个字符串。
无参数时默认逗号分隔
参数为空字符时那么数组的每一项被直接连接
返回:返回数组转换成的字符串,原数组不改变
6、reverse()
作用:颠倒数组
语法:数组.reverse()
返回:颠倒后的数组,原数组改变,变成颠倒后的数组
7、concat()
作用:连接数组,组成一个新的数组。
语法:数组.concat(value1,value2…)
参数:需要与数组合并的元素,可以是数组,数组名,非数组。
若无参数时是克隆一个新的数组
返回值:合并后的新数组,原数组不改变。
8、slice()
作用:截取数组
语法:数组.slice(m,n)
参数:是截取位置,从索引m处,截取到n处不包含n。
若只有一个参数,那么就是从参数位置开始到数组最后。
若无参数时返回原来的数组(克隆)
返回值:返回截取到的数组,原数组不改变
10、splice()
作用:用新的元素替换数组旧的元素(以此来修改数组的内容)
语法:splice(start,deleteCount,item)
参数:在索引start位置,删除deleteCount个元素后,把item放进来。
如果参数是一个时,代表载取数组,从参数位置开始到最后。
如果是两个参数时,代表从第一个参数位置开始,截取的个数为 第二个参数。
如果三个参数,从第一个参数位置开始,删除第二个参数个数后,把第三个以及第三个参数后边的数据加到数组中(替换数组元素)
返回值:返回删除的数据,原数组改变,变成删除后剩下的内容。
遍历数组:
forEach
作用:遍历数组
语法:数组.forEach(function(currentValue,index,array){
//每次循环完都会执行这里的代码
})
参数:forEach里放的参数是一个函数,
函数的参数
Value //当前数组中的某个数据
index//当前数据的索引
array//数组本身
var arr=['ab','bc','cd','de','a'];
arr.forEach(function(value,index,arr){
//这里放要循环的语句
console.log('value:'+value+' index:'+index,arr)
});
var array=['lisa','liu','li','zhang'];
array.forEach(function(cc,index,array){
// if(cc=='lisa'){
// console.log(cc,index);//lisa
// }
if(index==1){
console.log(cc);//liu
}
})
数组排序:
大小顺序排序
sort()
作用:对数组进行排序
语法:数组.sort(compareFunction)
参数:用来指定按某种顺序对数组进行排序
若无参数 按assci码值进行排序
函数里有两个参数a,b
return a-b 从小到大的顺序去排列小于0 从大到小
return b-a 从大到小的顺序去排列
返回:排序后的数组,原数组改变,变成排序后的数组
var arr1=[1,3,2,6,9,7];
arr1.sort();
//arr1.sort(function(a,b){return b-a});
console.log(arr1);//从小到大
var arr2=[1,3,2,6,9,734,100];
//arr2.sort();
arr2.sort(function(a,b){return b-a});
console.log(arr2)//从大到小
随机排序
sort(function(){
return:0.5-Math.random()
})
例:
var arr=[98,100,101,102,103,104,105];
arr.sort(function(){return 0.5-Math.random()})
console.log(arr);