现在的位置: 首页 > 综合 > 正文

JavaScript Array原生类型的扩展

2012年12月25日 ⁄ 综合 ⁄ 共 5546字 ⁄ 字号 评论关闭

Array原生类型
     长度可变数组对象数组对象
             --0开始
            --最大长度 2^32-1=4294967295
     构造Array对象
          --new Array():空数组
          --new Array(3):长度为3的数组
          --new Array(1,"hello"):构造有2个元素的数组
 Array.prototype
          length属性:数组长度,可读写
          toString()/toLocaleString()方法:
               --返回逗号分割的字符串
               --两种的区别是得到每个对象字符串的方式
          concate([item1[,item2[,......]]])方法
               --返回一个新数组,保存了原数组所有元素和所有的参数
          push([item1[,item2[,......]]])方法
               --在数组尾添加一个或多个元素
          pop方法:
               --从数组尾去除并返回元素
          shift方法:
               --从数组头去除并返回元素
          unshift([item1[,item2[,......]]])方法:
               --在数组头添加一个或多个元素
          join(separator)方法:
               --返回以separator作为分隔符得到一个连续所有元素的字符串
          reverse()方法:
               --将数组内所有的元素逆转
          sort(conmpareFunction)方法
               --参数为一个方法,用于比较两个元素
               --省略了参数则直接使用<,==,>比较两个元素
          slice(start,end)方法:
               --返回新数组,不影响旧数组
               --包含从下标start开始到下标end-1的元素
               --如果省略end则包含从下标start开始至末尾的所有元素
               --如果参数为负数,则表示数组的"倒数"第几个下标(即下标为n+array.length)
               --如果start元素在end元素之后或相同,则返回空数组
          splice(start,deleteCount[,item1[,item2[,......]]])方法:
               --最灵活的方法,影响到当前数组
               --从下标start的元素开始,删除deleteCount个元素,并在当前start位置开始插入剩余元素
               --删除元素:splice(2,1)
               --插入元素:splice(2,0,"hello","world")
               --替换元素:splice(2,1,"hello","world")

  1<body>
  2    <div id="message" />
  3    <script language="javascript" type="text/javascript">
  4        function display(text)
  5        {
  6            document.getElementById("message").innerHTML += (text + "<br />");
  7        }

  8     
  9        
 10        Array.prototype.display = function()
 11        {
 12            display("Array的值: "+this);
 13        }

 14        
 15        var array = new Array(1,2,3,4,5,6);
 16        display("new Array(1,2,3,4,5,6)");
 17        array.display(); // [1,2,3,4,5,6]
 18        display("<hr />");
 19        
 20        //push([item1[,item2[,]]])方法
 21        //    --在数组尾添加一个或多个元素
 22        array.push(7,8);
 23        display("array.push(7,8)")
 24        array.display(); //[1,2,3,4,5,6,7,8]
 25        display("<hr />");
 26        
 27        //shift方法:
 28        //从数组头去除并返回元素
 29        array.shift();
 30        display("array.shift() ");
 31        array.display(); //[2,3,4,5,6,7,8]
 32        display("<hr />");
 33        
 34        
 35        //unshift([item1[,item2[,]]])方法:
 36        //在数组头添加一个或多个元素
 37        array.unshift(9);
 38        display("array.unshift(9)");
 39        array.display(); // [9, 2, 3, 4, 5, 6, 7,8]
 40        display("<hr />");
 41        
 42        //pop方法:
 43        //从数组尾去除并返回元素
 44        array.pop();
 45        display("a.pop();" );
 46        array.display(); // [9, 2, 3, 4, 5, 6, 7]
 47        display("<hr />");
 48
 49        //concate([item1[,item2[,]]])方法
 50        //返回一个新数组,保存了原数组所有元素和所有的参数
 51        var out=array.concat(10,11,12);
 52        display("array.concat(10,11,12);");
 53        display("返回的结果:"+out);//[9, 2, 3, 4, 5, 6, 7,10,11,12]
 54        array.display(); // [9, 2, 3, 4, 5, 6, 7]
 55        display("<hr />");
 56        
 57        
 58        //join(separator)方法:
 59        //返回以separator作为分隔符得到一个连续所有元素的字符串
 60        var out = array.join("|");
 61        display("array.join(\"|\");");
 62        display("返回的结果:"+out); //[9|2|3|4|5|6|7]
 63        array.display();
 64        display("<hr />");
 65        
 66                
 67        //slice(start,end)方法:
 68        //    --返回新数组,不影响旧数组
 69        //    --包含从下标start开始到下标end-1的元素
 70        //    --如果省略end则包含从下标start开始至末尾的所有元素
 71        //    --如果参数为负数,则表示数组的"倒数"第几个下标(即下标为n+array.length)
 72        //    --如果start元素在end元素之后或相同,则返回空数组
 73        
 74        out =array.slice(3,5);
 75        display("array.slice(3,5);");
 76        display("返回的结果:"+out);  //[4,5]
 77        
 78        out =array.slice(3,-1);
 79        display("array.slice(3,-1);");
 80        display("返回的结果:"+out);  //[4,5,6]
 81        
 82        array.display(); //[9, 2, 3, 4, 5, 6, 7]
 83        display("<hr />");
 84        
 85        
 86        //splice(start,deleteCount[,item1[,item2[,]]])方法:
 87        //    --最灵活的方法,影响到当前数组
 88        //    --从下标start的元素开始,删除deleteCount个元素,并在当前start位置开始插入剩余元素
 89        //    --删除元素:splice(2,1)
 90        //    --插入元素:splice(2,0,"hello","world")
 91        //    --替换元素:splice(2,1,"hello","world")
 92        
 93        //删除
 94         array.splice(2,1);
 95        display(" array.splice(2,1);");
 96        array.display(); //[9, 2, 4, 5, 6, 7]
 97        
 98        //替换
 99        array.splice(2,1,99);
100        display("array.splice(2,1,99);");
101        array.display(); //[9,2,99,5,6,7]
102        
103        //插入
104        array.splice(2,0,66,77,88);
105        display("array.splice(2,0,66,77,88);");
106        array.display(); //[9,2,66,77,88,99,5,6,7]
107        display("<hr />");
108        
109        //reverse()方法:
110        //    --将数组内所有的元素逆转
111        array.reverse();
112        display("array.reverse();");
113        array.display(); //[7,6,5,99,88,77,66,2,9]
114        display("<hr />");
115    
116        //sort(conmpareFunction)方法
117        //    --参数为一个方法,用于比较两个元素
118        //    --省略了参数则直接使用<,==,>比较两个元素
119            
120        array.sort();
121        display("array.sort();");
122        array.display(); //[2,5,6,66,7,77,88,9,99]
123        display("<hr />");
124        
125        array.sort(function(x,y){return x-y;});
126        display("array.sort(function(x,y){return x-y;});");
127        array.display(); //[2,5,6,7,9,66,77,88,99]
128        display(

抱歉!评论已关闭.