数组定义:
var arr = [12,5,8,9]; var arr = new Array(12,5,8,9);
数组的length属性:
1. length即可以获取数组的长度,又可以设置数组的长度
2. 和其他语言不同的是js的数组的长度是动态改变的,js数组中可以存放任意类型数据,但是最好只存放一种类型的数据
1. 方法push( )向数组中追加元素,返回值为新数组的长度。
<script> var arr = [12,5,8,9]; var res = arr.push(3); alert(res); // 返回值为数组的长度5 </script>
2. 方法pop()从数组的尾部移除一个元素,返回值为移除的元素
<script> var arr = [12,5,8,9]; var res = arr.pop(); alert(res); // 返回值为移除的元素9 </script>
3. 方法shift()从数组的头部移除一个元素,返回值为移除的元素
<script> var arr = [12,5,8,9]; var res = arr.shift(); alert(res); // 返回值为移除的元素12 </script>
4. 方法unshift()从数组头部插入元素,返回值为新数组的长度
<script> var arr = [12,5,8,9]; var res = arr.unshift(3); alert(res); // 返回数组的长度5 </script>
5. 方法slice()用来截取数组的,返回值为截取的值(左闭右开区间)
<script> var arr = [12,5,8,9]; //arr.slice(1,3)的意思是:截取下标 (大于等于1,小于3)的值 var res = arr.slice(1,3); alert(res); // 返回值为5,8 alert(arr); // 返回12,5,8,9 可见slice方法不操作数组本身 </script>
6. 方法splice()用于向数组中添加元素,也用于从数组中删除元素;返回值为被删除的元素
var arr = [12,5,8,9]; var res = arr.splice(1,3);// 从下标为1的值开始,删除3个元素 alert(res); // 返回值为删除的元素:5,8,9 alert(arr); // 返回12 可见splice方法会操作数组本身
var arr = [12,5,8,9]; var res = arr.splice(1,3,44,55);// 从下标为1的值开始,删除3个元素,然后在添加2个元素,44,55 alert(res); // 返回值为删除的元素:5,8,9 alert(arr); // 返回12,44,55
var arr = [12,5,8,9]; var res = arr.splice(1,0,44,55);// 从下标为1的值开始,删除0个元素(不删除元素),然后在从下标为1的位置添加2个元素,44,55 alert(res); // 返回值为删除的元素:为空 alert(arr); // 返回12,44,55,8,9
7. 方法concat()用于连接两个或多个数组,返回值为新数组
var arr1 = [12,5,8,9]; var arr2 = [33,44]; var res = arr1.concat(arr2); alert(res); // 12,5,8,9,33,44
连接多个数组
var arr1 = [12,5,8,9]; var arr2 = [33,44]; var arr3 =['A','B']; var res = arr1.concat(arr2,arr3); alert(res); // 打印出12,5,8,9,33,44,A,B alert(arr1);// 打印12,5,8,9 ,可见concat方法不操作数组本身 alert(arr3);// 打印 A,B
8. 方法join(分隔符):用分隔符来连接数组中的每个元素,返回连接后结果(字符串形式)
var arr1 = [12,5,8,9]; var res = arr1.join('*'); alert(res); // 12*5*8*9 alert(arr1);// 打印12,5,8,9,可见join方法也不操作数组本身
补充:
//js中字符串有个split的用法:用来将字符串分割为数组 var str='12*5*8*9'; var res = str.split('*');//用字符*来分割 alert(res);
9. 方法sort()对数组元素进行正序排序(从小到大),默认是按ASCII字母表的大小顺序进行排序(注意:对数字进行排序的时候并不是按照数字的大小进行排序的)
var arr = [12,5,8,9,10,1]; var res = arr.sort(arr); alert(res); //打印结果1,10,12,5,8,9,并不是我们想象的1,5,8,9,10,12 alert(arr);// 打印1,10,12,5,8,9 ,可见sort方法操作数组本身
为了清楚理解sort的排序原理
var arr = [12,5,'a',8,'A','D',9,10,1,'c']; var res = arr.sort(arr); alert(res); //1,10,12,5,8,9,A,D,a,c
ASCII表 大小顺序
1)数字0~9比字母要小。如"7"<"F";
2)数字0比数字9要小,并按0到9顺序递增。如"3"<"8"
3)字母A比字母Z要小,并按A到Z顺序递增。如"A"<"Z","a"<"z"
4)大写字母比小写字母要小。如"A"<"a","D"<"a"。
如果想通过sort实现对数字进行大小的比较,我们需要自定义一个“比较函数”作为参数传给sort。例如
function compare(n1,n2){ // 自定义比较的函数 if(n1<n2){ return -1; } else if(n1>n2){ return 1; } else{ return 0; } } var arr = [12,5,8,9,10,1]; var res = arr.sort(compare);//通过自定义的函数对 数字进行正序排序 alert(res); // 打印 1,5,8,9,10,12
// 简单的写法 function compare(n1,n2){ return n1 -n2;// 从小到大排序 } var arr = [12,5,8,9,10,1]; var res = arr.sort(compare);//通过自定义的函数对 数字进行正序排序 alert(res); // 打印 1,5,8,9,10,12
如果要实现从大到小排序,只需要return n2-n1
function compare(n1,n2){ return n2-n1;//从大到小排列 }
10. 方法revers用来对数组进行倒叙排序(排序的原则是颠倒数组元素的位置),简单来说就是把数组里的元素翻个个。
var arr = [12,5,8,9,10,2]; var res = arr.reverse(); alert(res); //打印2.10,9,8,5,12 alert(arr);//打印2.10,9,8,5,12 可见reverse方法操作数组本身
//字符串 var arr = ['Zhangsan','Lisi','Wangwu','Zhaoliu']; var res = arr.reverse(); alert(res); //打印 Zhaoliu.Wangwu,Lisi,Zhangsan
时间: 2024-10-20 22:11:15