javascript之數組操作


4.1、創建

var arrayObj = new Array();
var arrayObj = new Array([size]);
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]);

示例:

復制代碼
            var array11 = new Array();  //空數組
            var array12 = new Array(5);  //指定長度,可越界
            var array13 = new Array("a","b","c",1,2,3,true,false);  //定義並賦值
            var array14=[];  //空數組,語法糖
            var array15=[1,2,3,"x","y"];  //定義並賦值
復制代碼

4.2、訪問與修改

var testGetArrValue=arrayObj[1]; 

arrayObj[1]= "值";

復制代碼
            //4.2、訪問與修改
            array12[8]="hello array12";  //賦值或修改
            console.log(array12[8]);   //取值
            //遍歷
            for (var i = 0; i < array13.length; i++) {
                console.log("arrayl3["+i+"]="+array13[i]);
            }
            //枚舉
            for(var i in array15){ 
                console.log(i+"="+array15[i]);  //此處的i是下標
            }
復制代碼

結果:

4.3、添加元素

將一個或多個新元素添加到數組未尾,並返回數組新長度

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);

將一個或多個新元素添加到數組開始,數組中的元素自動后移,返回數組新長度

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);

將一個或多個新元素插入到數組的指定位置,插入位置的元素自動后移,返回被刪除元素數組,deleteCount要刪除的元素個數

arrayObj.splice(insertPos,deleteCount,[item1[, item2[, . . . [,itemN]]]])

示例代碼:

復制代碼
            //4.3、添加元素
            var array31=[5,8];
            //添加到末尾
            array31.push(9);
            var len=array31.push(10,11);
            console.log("長度為:"+len+"——"+array31);
            //添加到開始
            array31.unshift(4);
            var len=array31.unshift(1,2,3);
            console.log("長度為:"+len+"——"+array31);
            //添加到中間
            var len=array31.splice(5,1,6,7);  //從第5位開始插入,刪除第5位后的1個元素,返回被刪除元素
            console.log("被刪除:"+len+"——"+array31);
復制代碼

運行結果:

4.4、刪除

移除最后一個元素並返回該元素值

arrayObj.pop();

移除最前一個元素並返回該元素值,數組中元素自動前移

arrayObj.shift(); 

刪除從指定位置deletePos開始的指定數量deleteCount的元素,數組形式返回所移除的元素

arrayObj.splice(deletePos,deleteCount); 

示例:

復制代碼
            //4.4、刪除
            var array41=[1,2,3,4,5,6,7,8];
            console.log("array41:"+array41);
            //刪除最后一個元素,並返回
            var e=array41.pop();
            console.log("被刪除:"+e+"——"+array41);
            //刪除首部元素,並返回
            var e=array41.shift();
            console.log("被刪除:"+e+"——"+array41);
            //刪除指定位置與個數
            var e=array41.splice(1,4);  //從索引1開始刪除4個
            console.log("被刪除:"+e+"——"+array41);
復制代碼

 

結果:

4.5、截取和合並

以數組的形式返回數組的一部分,注意不包括 end 對應的元素,如果省略 end 將復制 start 之后的所有元素

arrayObj.slice(start, [end]); 

將多個數組(也可以是字符串,或者是數組和字符串的混合)連接為一個數組,返回連接好的新的數組

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); 

示例: 

復制代碼
            //4.5、截取和合並
            var array51=[1,2,3,4,5,6];
            var array52=[7,8,9,0,"a","b","c"];
            //截取,切片
            var array53=array51.slice(2);  //從第3個元素開始截取到最后
            console.log("被截取:"+array53+"——"+array51);
            var array54=array51.slice(1,4);  //從第3個元素開始截取到索引號為3的元素
            console.log("被截取:"+array54+"——"+array51);
            //合並
            var array55=array51.concat(array52,["d","e"],"f","g");
            console.log("合並后:"+array55);
復制代碼

結果:

4.6、拷貝

返回數組的拷貝數組,注意是一個新的數組,不是指向

arrayObj.slice(0); 

返回數組的拷貝數組,注意是一個新的數組,不是指向

arrayObj.concat(); 

因為數組是引用數據類型,直接賦值並沒有達到真正實現拷貝,地址引用,我們需要的是深拷貝。

4.7、排序

反轉元素(最前的排到最后、最后的排到最前),返回數組地址

arrayObj.reverse(); 

對數組元素排序,返回數組地址

arrayObj.sort(); 

arrayObj.sort(function(obj1,obj2){}); 

示例:

復制代碼
            var array71=[4,5,6,1,2,3];
            array71.sort();
            console.log("排序后:"+array71);
            var array72=[{name:"tom",age:19},{name:"jack",age:20},{name:"lucy",age:18}];
            array72.sort(function(user1,user2){
                return user1.age<user2.age;
            });
            console.log("排序后:");
            for(var i in array72) console.log(array72[i].name+","+array72[i].age);
復制代碼

 

結果:

4.8、合並成字符

返回字符串,這個字符串將數組的每一個元素值連接在一起,中間用 separator 隔開。

arrayObj.join(separator); 

示例代碼:

復制代碼
            //4.8、合並成字符與將字符拆分成數組
            var array81=[1,3,5,7,9];
            var ids=array81.join(",");
            console.log(ids);
            
            //拆分成數組
            var text="hello nodejs and angular";
            var array82=text.split(" ");
            console.log(array82);
復制代碼

運行結果:

所有代碼:

復制代碼
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>數組操作</title>
    </head>

    <body>
        <script type="text/javascript">
            //4.1、創建
            var array11 = new Array();  //空數組
            var array12 = new Array(5);  //指定長度,可越界
            var array13 = new Array("a","b","c",1,2,3,true,false);  //定義並賦值
            var array14=[];  //空數組,語法糖
            var array15=[1,2,3,"x","y"];  //定義並賦值
            
            //4.2、訪問與修改
            array12[8]="hello array12";  //賦值或修改
            console.log(array12[8]);   //取值
            //遍歷
            for (var i = 0; i < array13.length; i++) {
                //console.log("arrayl3["+i+"]="+array13[i]);
            }
            //枚舉
            for(var i in array15){ 
                //console.log(i+"="+array15[i]);  //此處的i是下標
            }
            
            //4.3、添加元素
            var array31=[5,8];
            //添加到末尾
            array31.push(9);
            var len=array31.push(10,11);
            console.log("長度為:"+len+"——"+array31);
            //添加到開始
            array31.unshift(4);
            var len=array31.unshift(1,2,3);
            console.log("長度為:"+len+"——"+array31);
            //添加到中間
            var len=array31.splice(5,1,6,7);  //從第5位開始插入,刪除第5位后的1個元素,返回被刪除元素
            console.log("被刪除:"+len+"——"+array31);
            
            //4.4、刪除
            var array41=[1,2,3,4,5,6,7,8];
            console.log("array41:"+array41);
            //刪除最后一個元素,並返回
            var e=array41.pop();
            console.log("被刪除:"+e+"——"+array41);
            //刪除首部元素,並返回
            var e=array41.shift();
            console.log("被刪除:"+e+"——"+array41);
            //刪除指定位置與個數
            var e=array41.splice(1,4);  //從索引1開始刪除4個
            console.log("被刪除:"+e+"——"+array41);
            
            //4.5、截取和合並
            var array51=[1,2,3,4,5,6];
            var array52=[7,8,9,0,"a","b","c"];
            //截取,切片
            var array53=array51.slice(2);  //從第3個元素開始截取到最后
            console.log("被截取:"+array53+"——"+array51);
            var array54=array51.slice(1,4);  //從第3個元素開始截取到索引號為3的元素
            console.log("被截取:"+array54+"——"+array51);
            //合並
            var array55=array51.concat(array52,["d","e"],"f","g");
            console.log("合並后:"+array55);
            
            //4.7、排序
            var array71=[4,5,6,1,2,3];
            array71.sort();
            console.log("排序后:"+array71);
            var array72=[{name:"tom",age:19},{name:"jack",age:20},{name:"lucy",age:18}];
            array72.sort(function(user1,user2){
                return user1.age<user2.age;
            });
            console.log("排序后:");
            for(var i in array72) console.log(array72[i].name+","+array72[i].age);
            
            //4.8、合並成字符與將字符拆分成數組
            var array81=[1,3,5,7,9];
            var ids=array81.join(",");
            console.log(ids);
            
            //拆分成數組
            var text="hello nodejs and angular";
            var array82=text.split(" ");
            console.log(array82);
            
        </script>
    </body>

</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM