文章目录
一、创建数组
1、字面量方式创建数组
var 变量名=[数值1,数值2];
var arr=[10,4,2,19,7,4];
2、构造函数创建数组
var 变量名=new Array();
新建一个长度为零的数组。
var myarr=new Array();
myarr[0]=10;
myarr[1]="hello";
myarr[3]=true;
console.log(myarr);//[10,"hello",true]
注意:括号里面可以有参数。
- 若为一个数字,表示该数组的长度。
例如: var 变量名=new Array( n );
新建一个长度为n的数组
var myarr=new Array(10);
console.log(myarr);[]
console.log(myarr.length); 10
- 如果为多个数字或者一个(多个)非数字表示的是传递数组中应该包含的值。
例如: var 变量名=new Array( 元素1,元素2,元素3,…);
新建一个指定长度的数组,并赋值
var myarr=new Array(10,"hello");
console.log(myarr);//[10,"hello"]
console.log(myarr.length);//2
二、访问数组
数组的长度
var arr=[12,22,13,23,45,17];
console.log(arr.length);//6
数组的索引号 0—arr.length-1
通过数组的索引号访问数组元素 arr[索引号]
console.log(arr[0])//12
console.log(arr[2])//13
console.log(arr[arr.length-1])//17
三、遍历数组
1、for循环遍历数组
var arr=[10,"hello",true,[10,"hello"]];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);// 10 "hello" true [10,"hello"]
}
2、for…in 遍历数组
var arr=[10,4,2,19,7,4];
for(var i in arr){
console.log(arr[i]);//10 4 2 19 7 4
除了上面两种遍历数组的方法外,我们还可以通过调用数组的方法forEach来遍历数组,为了避免混淆,我会在数组的方法中再具体说明。
四、数组的方法
1、数组方法-遍历
arrObj .forEach(function(参数1,参数2,参数3){ })
- 参数1;每个元素
- 参数2;索引号
- 参数3;数组
- 返回值:无返回值
var arr=["一等奖","二等奖","三等奖","四等奖","参与奖"];
arr.forEach(function(item,index,arr){
console.log(item);//每个元素 一等奖 二等奖 三等奖 四等奖 参与奖
console.log(index);//索引号 0 1 2 3 4
console.log(arr);//数组 ["一等奖","二等奖","三等奖","四等奖","参与奖"]
return item;
});
2、数组方法-映射
arrObj .map(function(参数1,参数2,参数3){ });
- 参数1;每个元素
- 参数2;索引号
- 参数3;数组
- 返回值:替换后的新数组
var arr=[100,50,50,50,10,30];
var a=arr.map(function(item,i,arr){
if(item>=500){
return "及格"
}else{
return "不及格"
}
});
console.log(a);//["不及格","不及格","不及格","不及格","不及格","不及格"]
3、数组方法-筛选
arrObj .filter(function(参数1,参数2,参数3));
- 参数1;每个元素
- 参数2;索引号
- 参数3;数组
- 返回值:筛选后的数组
var arr=[12,13,14,15,16,17,18];
var a=arr.filter(function(item,i,arr){
console.log(item);//12,13,14,15,16,17,18
console.log(i);//0 1 2 3 4 5 6
console.log(arr);//[12,13,14,15,16,17,18]
if(item<14){
return item;
}
});
console.log(a);//12 13
4、数组方法- 迭代
arrObj .reduce(function(参数1,参数2,参数3,参数4));
- 参数1:初始值
- 参数2;当前数
- 参数3;当前数下标
- 参数4;数组
- 常用于累加 累减
var arr=[12,13,14,15,16,17,18];
var a=arr.reduce(function(val,curNum,i,arr){
console.log(val);//初始值 12
console.log(curNum);//当前数 13 14 15...
console.log(i);//当前数下标 1
console.log(arr);//数组
return val+curNum;//累加求和
});
console.log(a);//105 求和
5、数组方法-删除
- 从头部删除
arrObj.shift();
从数组头部删除元素
返回值:删除的数
var arrObj=[9,2,33,66,1];
arrObj.shift(arrObj);//[2,33,66,1]
- 从尾部删除
arrObj .pop();
从数组尾部删除元素
返回值:删除的数
var arrObj=[9,2,33,66,1];
arrObj.pop(arrObj);//[9,2,33,66]
6、数组方法-添加
- 从头部添加元素
arrObj.unshift(元素1,元素2…);
从数组头部添加元素
返回值,新数组的长度
var arrObj=[9,2,33,66,1];
arrObj.unshift(1);
console.log(arrObj)//[1,9,2,33,66,1]
- 从尾部添加元素
arrObj.push(元素1,元素2…);
数组尾部添加元素
返回值,新数组的长度
var arrObj=[9,2,33,66,1];
arrObj.push(1);
console.log(arrObj)//[9,2,33,66,1,1]
7、数组方法-添加/删除
arrObj.splice(参数1,参数2,参数3)
- 参数1:必须 开始删除/添加位置的下标.可以为负
- 参数2:必须 删除的个数.
- 参数3:可选 添加的元素,多个元素之间用逗号隔开,
- 返回值:删除的元素构成的数组
var arr = [10,"hello",true,8,"world"];
var a = arr.splice(2,2);//[true,8]
var a1 = arr.splice(-2,2);//["hello","world"]
var a2 = arr.splice(0,2,44,88);//[10]
console.log(arr);//[44,88]
8、数组方法-排序
arrObj.sort(参数)
- 参数 可选 函数若省略 按照unlcode编码排序 ,升序
var arr=[10,6,2,8];
//默认从大到小
var a=arr.sort(function(x,y){
// return x-y;//升序
return y-x;//降序
});
console.log(a); // [10,8,6,2]
9、数组方法-反转
arrObj.reverse(参数) 反转数组
- 返回值:反转后的数组
var arr=[2,10,6,8];
console.log(arr.reverse());//反转数组[8,6,10,2]
10、数组方法-链接
arrObj.concat(参数…)
- 参数1:必须 可以是数组,可以是元素
- 多个参数之间用逗号隔开
- 返回值:链接后的数组
var arr = [10,11];
var arr2 = ["hello","world"];
var a = arr.concat(true,10,arr2);
console.log(a);//[10,11,true,10, "hello", "world"]
11、数组方法-分割
arrObj.slice(参数1,参数2)
- 参数1:必需 开始截取的位置,可以为负
- 参数2:可选 结束截取的位置,可以为负
- 返回值:截取的数组
- 字符串对象也可以用
var str = "hello";
var s = str.slice(1,3);//el
var s1 = str.slice(-3,-1);//ll
今天的分享就到这里 希望对大家有所帮助!