数组及相关操作

1. 概念:所谓数组,是有序的元素数列,即一组有序数据。
2. 创建方式:
1. var arr = a[1,2];//字面量声明方式,此时数组中有1,2共两个元素,且arr[0]=1,arr[1]=2,由此可见若设定一个变量i,arr[i]即可遍历数组,i称为下标或索引,从0开始至arr.length-1结束(arr.length为数组长度)
2. var arr = new Array();构造函数方式创建数组,与上面创建方式用法相同,但不同的参数会导致行为不一致,因此最好使用字面量方式创建
3. 相关操作

1 push() // 向数组末尾添加元素,原数组发生改变,并且返回值为改变后数组的长度。若push()内无参数返回原数组长度和原数组的元素

        eg:var arr = [1,2,3,4,5];
                var arr1=arr.push(1);
                document.write(arr1+"
"
+arr); //结果为 6 1,2,3,4,5,16即为添加1后数组的长度为6,后面即为添加后的新数组)//原数组操作后发生改变

2 pop()//删除数组最末一个元素,无论pop()内是否有参数,并返回被删除元素

       eg:var arr = [1,2,3,4,5];
                var arr1=arr.pop();
                document.write(arr1+"
"
+arr); //结果为 5 1,2,3,45处于最末,即被删掉的元素,1,2,3,4为删除过后的数组)//原数组操作后发生改变

3 unshift()//用法与push()相似,只是将元素添加在了头部,返回操作后数组长度,原数组发生改变

      eg:var arr = [1,2,3,4,5];
                var arr1=arr.unshift(1);
                document.write(arr1+"
"
+arr); //结果为 6 1,1,2,3,4,5

4 shift()//用法与pop()相似,只是是在头部删除一个元素,返回被删除元素,原数组发生改变

      eg:var arr = [1,2,3,4,5];
                var arr1=arr.shift();
                document.write(arr1+"
"
+arr); //结果为 1 2,3,4,5

5 slice()//截取数组片段,一个参数即从参数对应索引开始截至末尾,并返回被截取片段
两个参数(至多两个参数),从第一个参数对应索引为开始截取至第二个参数对应索引位结束(不包括第二个参数对应索引位),并返回此片段
无参,返回原数组
slice()操作过后,原数组不发生改变

      eg:var arr = [1,2,3,4,5];
                var arr1=arr.slice(2);
                document.write(arr1+"
"
+arr); //结果为 3,4,5 1,2,3,4,5 eg:var arr = [1,2,3,4,5]; var arr1=arr.slice(2,3); document.write(arr1+"
"
+arr); //结果为 3 1,2,3,4,5

6 splice()//一个参数时,从参数对应索引开始截取至数组末尾,返回被截取片段,原数组发生改变
两个参数时,从第一个参数对应索引位开始截取至第二个参数的长度,即第二位参数表示被截取的长度,原数组发生改变
三或以上参数,前两位与上相同,后面的插入到截取的地方

       eg:var arr = [1,2,3,4,5];
            var arr1=arr.splice(2);
            document.write(arr1+"
"
+arr); //结果为 3,4,5 1,2 eg:var arr = [1,2,3,4,5]; var arr1=arr.splice(2,3); document.write(arr1+"
"
+arr); //结果为 3,4,5 1,2 eg:var arr = [1,2,3,4,5]; var arr1=arr.splice(2,3,11); document.write(arr1+"
"
+arr); //结果为 3,4,5 1,2,11

7 reverse()//将数组内元素翻转,原数组发生改变

   eg:var arr = [1,2,3,4,5];
            var arr1=arr.reverse();
            document.write(arr1+"
"
+arr); //结果为 5,4,3,2,1 5,4,3,2,1

8 sort()//方法对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变.
sort方法不是按照大小排序,而是按照字典顺序。也就是说,数值会被先转成字符串,再按照字典顺序进行比较。
如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数。

   eg:  var arr = [1,2,3,4,5,2];
                arr.sort(function(a,b){
                return a-b;
                });
               document.write(arr);
            //输出   1,2,2,3,4,5  从小到大排列

              var arr = [1,2,3,4,5,2];
                arr.sort(function(a,b){
                return b-a;
                });
               document.write(arr);
            //输出   5,4,3,2,2,1  从大到小排列

你可能感兴趣的:(js)