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>

