码迷,mamicode.com
首页 > 编程语言 > 详细

JS数组-第一脚

时间:2015-05-22 17:15:19      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:数组   插入   删除   存取   排序   

数组定义:

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


JS数组-第一脚

标签:数组   插入   删除   存取   排序   

原文地址:http://blog.csdn.net/u014205965/article/details/45917833

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!