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>