1.数组简介
数组的定义方式1:
<script type="text/javascript">
var arr=new Array();//建立一个数组
arr[0]=11;//向数组中添加元素
arr[1]=12;//向数组中添加元素
arr[2]=13;//向数组中添加元素
console.log(arr);//输出数组对象
console.log(arr[0]);//输出数组元素
console.log(typeof arr);//输出数组类型
</script>
输出结果:
数组的定义方式2(字面量):
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
var arr2=["hi",1,2,true];//数组中的类型可以是任何类型
var arr3=[[1,2,3],[4,5,6],[7,8,9]];//建立一个二维数组
console.log(arr);//输出数组对象arr
console.log(arr[0]);//输出数组元素
console.log(arr2);//输出数组对象arr2
console.log(arr2[0]);//输出数组元素
console.log(arr3);//输出数组对象arr3
console.log(arr3[0]);//输出数组元素
</script>
输出结果如下:
2.数组的四种方法
1.push()方法
作用:向数组末尾添加元素并且返回新的数组长度
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
var result=arr.push("北京","上海");//向数组末尾添加元素并且将新的数组长度赋值给result
console.log(arr);//输出数组
console.log("resule="+result);//输出新的数组长度result
</script>
输出结果如下:
2.pop()方法
作用:删除并返回数组的最后一个元素
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
var result=arr.pop();//删除数组的最后一个元素,并且将删除的元素赋值给result
console.log(arr);//输出数组
console.log("resule="+result);//输出删除的元素值
</script>
输出结果如下:
3.unshift()方法
作用:向数组开头添加一个或多个元素并且将新的数组长度返回
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
var result=arr.unshift("我是","小凯");//向数组开头添加2个元素并且返回新的数组长度result
console.log(arr);//输出数组
console.log("resule="+result);//输出新的数组长度result
</script>
输出结果如下:
4.shift()方法
作用:删除并返回数组的第一个元素
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
var result=arr.shift();//删除数组开头的元素并且将删除的元素赋值给result
var result=arr.shift();//再次删除数组开头的元素
console.log(arr);//输出数组
console.log("resule="+result);//输出删除的元素
</script>
输出结果如下:
3.数组的遍历
所谓数组的遍历,就是将数组的所有元素都取出来
<script type="text/javascript">
var arr=["hello","china","beautiful"];//建立一个数组
for(var i=0;i<arr.length;i++)//遍历数组
{
console.log(arr[i]);//依次输出hello,China,beautiful
}
<script >
说明:用forEach方法只能兼容IE8以上
<script type="text/javascript">
var arr=["hello","china","beactiful"];
arr.forEach(
function(value,index,obj)//参数value表示的是正在遍历的元素,参数index表示的正在遍历元素的索引,参数obj表示正在遍历的数组
{
console.log("index="+index+",value="+value);}
);
<script >
4.slice()方法和splice()方法
slice()方法说明:作用,可以从数组中提取指定元素且不会影响原数组
参数:start数组开始位置的索引,包含开始索引,end数组结束位置的索引,不包含结束索引,end可以不写此时表示的是从开始索引位置一直到最后,索引也可以传递负值,则此时表示的是从后往前计算,-1表示的倒数第一个以此类推
实例
<script type="text/javascript">
var arr=["孙悟空","猪八戒","沙和尚","唐僧","白骨精","牛魔王"];
var result=arr.slice(1,3);//将提取后的数组赋值给result
var result1=arr.slice(3);//从第三个位置开始提取
var result2=arr.slice(1,-2);//从倒数第二个位置开始提取
console.log(arr);//输出原数组
console.log(result);//输出截取后的数组
console.log(result1);//输出截取后的数组
console.log(result2);//输出截取后的数组
</script>
输出结果如下:
2.splice()方法
作用:删除数组中的元素并且向其中添加新的元素
说明:使用splice()方法会影响原数组,会将指定元素从数组中删除,并且将删除元素作为返回值返回
参数1:开始删除的位置
参数2:删除元素的个数
参数3及以后:表示新添加的元素
<script type="text/javascript">
var arr=["孙悟空","猪八戒","沙和尚","唐僧","白骨精","牛魔王"];
var result1=arr.splice(0,2);//删除两个元素,从0位置开始删除并将删除后的结果赋值给result1
console.log(result1);//输出删除的元素
console.log(arr);//输出原数组,原数组已经改变
</script>
输出结果如下:
<script type="text/javascript">
var arr=["孙悟空","猪八戒","沙和尚","唐僧","白骨精","牛魔王"];
var result1=arr.splice(0,2,"红孩儿","铁扇公主");//删除两个元素,从0位置开始删除并且在0位置的前面添加两个新元素将结果赋值给result1
console.log(result1);//输出删除的元素
console.log(arr);//输出原数组,原数组已经改变
</script>
5.数组去重练习
题目:有一个数组,数组中含有1,2,3,3,2,1,4,2,5删除重复数字,使其输出1,2,3,4,5
<script type="text/javascript">
var arr=[1,2,3,3,2,1,3,4,2,5];//创建一个新的数组
for(var i=0;i<arr.length;i++)//获取数组中的每一个元素
for(var j=i+1;j<arr.length;j++)//获取当前元素后的所有元素
if(arr[i]==arr[j])//判断两个元素是否相等
{
arr.splice(j,1);//删除重复数字
j--;//非常重要
}
console.log(arr);//输出数组
</script>
6.数组中其他的方法
1.concat()方法
作用:可以将两个或者多个数组连接起来,并且返回新的数组
说明:不会对原数组产生影响
<script type="text/javascript">
var arr1=[1,2,3,4];
var arr2=["hello","dweblover"];
var result=arr1.concat(arr2);//将arr2连接到arr1的后面
console.log(result);//输出连接后的数组
console.log(arr1);//输出原数组arr1
console.log(arr2);//输出原数组arr2
</script>
输出结果如下:
2.join()方法
作用:该方法可以将数组转换为一个字符串
说明:该方法不会对原数组产生影响
<script type="text/javascript">
var arr=["登录","注册","会员"];
var result=arr.join("|");//指定连接符为|,默认连接符是,
console.log(result);
console.log(arr);//输出原数组
</script>
输出结果如下:
3.reverse()方法
作用:反转数组
说明:会对原数组产生影响
<script type="text/javascript">
var arr=[1,2,3,4,5,6];
var result=arr.reverse();
console.log(result); //输出6,5,4,3,2,1
</script>
4.sort()方法
作用:对数组元素进行排序
说明:如果是升序则是return a-b;如果是降序则返回return b-a
<script type="text/javascript">
var arr=[2,34,5,89,12,90];
arr.sort(
function(a,b)
{
if(a>b)
return 1;//交换位置
else if(a<b)
return -1;//不交换位置
else
return 0;//也可以将if-else if -else这三个改写成一句return a-b
}
);
console.log(arr); //按升序输出