js 数组
- 数组的创建
- [1] 字面量创建
var array=[]; //空数组
var array1=[1,2,3,4] //1,2,3,4
数组元素之间用逗号隔开
- [2] 构造函数创建
var arr=new Array();//空数组
var arr1=new Array(1,2,3,4);//数组元素为1,2,3,4
var arr2=new Array(10);//数组长度为10的空数组
- 数组的遍历
- [1] 显示单个数组元素
console.log(arr1[0]);//数组元素下标(索引)从0开始
显示单个数组元素的方式为 数组名[下标]
注意: 数组下标从0开始
- [2] 数组元素遍历
var arr1= new Array(1,2,3,4);
for(var i=0;i<arr1.length;i++){//arr1.length的返回值是数组arr1的长度 数组arr1的长度为4
console.log(arr1[i]);
}
数组名.length的返回值为当前数组名的数组长度也就是数组元素的个数
注意数组的下标是从0开始,但数组的长度是从1开始计算的 ,所以如果你想找到数组中的最后一个元素的话为数组名[数组名.length-1]
例如:
var arr1= new Array(1,2,3,4);
console.log(arr1[arr1.length-1]);
- 二维数组
- [1] 二维数组的写法
var array1=[
[1,2,3],
[4,5,6],
[7,8,9]
]
二维数组就是一维数组的每个元素也是一个数组,中间还是用逗号隔开
- [2] 二维数组的遍历
- [1] 二维数组的单个数组元素显示
var array1=[
[1,2,3],
[4,5,6],
[7,8,9]
]
console.log(array1[0][0]);//1
二位数组的单个元素显示与一维数组的显示差别不大,只是二维数组需要两个下标,两个坐标可以理解为一个是行坐标,一个是列坐标
- [2] 二维数组的元素遍历
var array1=[
[1,2,3],
[4,5,6],
[7,8,9]
]
for(var i=0;i<array1.length;i++){
for(var j=0; j<array1[i].length;j++){
console.log(array1[i][j]);
}
}
二维数组遍历需要两个for循环,二维数组可以理解为行和列 我们先找到一共几行,那么行怎么找呢,可以用数组名[数组名.length],那么列的长度就是数组名[行].length
- 数组方法
方法名 | 作用 |
---|---|
reverse | 对数组元素进行翻转操作 |
用法:数组名.reverse()
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
array1.reverse();
console.log(array1);
reverse会改变原先的数组,不会生成新数组
方法名 | 作用 |
---|---|
concat | 将两个数组合并成一个新的数组 |
用法:数组名.concat() 参数可以是数组名也可以是[1,2,3,4]
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
var array2=[7,8,9,10]
array1.concat(array2);//concat()括号里也可以加[1,2,13,15]
console.log(array1);
我们发现用了concat后数组没有变化,那么由此可以得出concat不能改变原数组所以我们对上面的代码进行修改
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
var array2=[7,8,9,10]
var r=array1.concat(array2);//concat()括号里也可以加[1,2,13,15]
console.log(r);
方法名 | 作用 |
---|---|
push | 将元素添加到数组的最后面 |
用法:数组名.push(参数1,参数2,参数n)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.push(7);
console.log(array1);
方法名 | 作用 |
---|---|
pop | 将数组中的最后一个元素,从数组中删除 |
用法:数组名.pop()
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.pop();
console.log(array1);
方法名 | 作用 |
---|---|
unshift | 将元素添加到数组的最前方 |
用法:数组名.unshift(参数1,参数2,参数n)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.unshift(10,8,4,8);
console.log(array1);
注意:用unshift时如果同时添加多个,他们的顺序是不会倒序排列的
方法名 | 作用 |
---|---|
shift | 将数组中的第一个元素从数组中删除 |
用法:数组名.shift()
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.shift();
console.log(array1);
方法名 | 作用 |
---|---|
join | 将数组里的元素转换成字符串,用参数指定的分隔符进行连接 |
用法:数组名.join(分隔符)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.join('+');
console.log(array1);
我们发现用了join后输出结果没有改变,所以我们知道join不能改变原数组,所以,我们对代码进行修改
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
var r=array1.join('+');
console.log(r);
方法名 | 作用 |
---|---|
slice | 将数组元素从start截取到end位置 |
用法:数组名.slice(start,end)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.slice(2,3);
console.log(array1);
我们发现用了slice后输出结果没有改变,所以我们知道slice不能改变原数组,所以,我们对代码进行修改
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
var r=array1.slice(2,3);
console.log(r);
slice(2,3)的意思是从索引为2的元素截取,截取到索引为3的元素为止,根据结果我们可以得出slice方法的截取,截取不到end位置的元素
var array1=[1,2,3,4,5,6]
//下标 0 1 2 3 4 5
console.log(array1);
var r=array1.slice(2);
console.log(r);
slice(2)的意思为从索引为2的元素开始截取,从结果我们可以看出如果没有end的时候它会一直向后截取,知道结束
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
var r=array1.slice(-3);
console.log(r);
slice(-3)的意思为从倒数第三个元素向后截取,注意这里用的不是索引它是从倒数第一个开始计算的
方法名 | 作用 |
---|---|
splice | 在数组的指定位置删除或插入元素 |
用法:数组名.splice(start,删除元素的个数,插入到start位置的元素1…n)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.splice(2,3);
console.log(array1);
splice(2,3)的意思是从索引为2的元素删除,删除3个元素,根据结果我们可以得出splice方法的删除,是包括start位置的元素的
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
array1.splice(2,0,7,8,9,10);
console.log(array1);
splice(2,0,7,8,9,10)的意思是从索引为2的元素插入,删除0个元素,插入7,8,9,10根据结果我们可以得出splice方法的插入,是包括start位置的元素的
方法名 | 作用 |
---|---|
indexOf | 查找元素在数组中的索引位置 |
用法:数组名.indexOf(要查找的元素,start)
var array1=[1,2,3,4,5,6]
//索引 0 1 2 3 4 5
console.log(array1);
var t=array1.indexOf(3); //2
var f=array1.indexOf(8);//-1
console.log(t);
console.log(f);
indexOf(3)的意思是查找1在数组中的位置,然后返回索引值为2。如果找不到就返回-1 start 就是从什么位置开始查找
方法名 | 作用 |
---|---|
lastIndexOf | 从后向前找查找元素在数组中的索引位置 |
用法:数组名.lastIndexOf(要查找的元素,start)
var array1=[1,2,3,4,5,6]
console.log(array1);
var t=array1.lastIndexOf(3); //2
var f=array1.lastIndexOf(8);//-1
console.log(t);
console.log(f);
lastIndexOf(3)的意思是查找3在数组中的位置不过他是从后往前查找的,然后返回索引值为2。如果找不到就返回-1 虽然lastIndexOf是从后往前查找,但是他的开始位置还是根据索引位置来定的