1. 程式人生 > >數組(一)——數組創建及操作

數組(一)——數組創建及操作

shift hle 等價 func nsh like 索引 arr delet

創建數組

1. 字面量

var BAT = [‘Alibaba‘,‘Tencent‘,‘Baidu‘];
var students = [{name:‘ydt‘,age:23},{name:‘yjx‘,age:40}];
var arr = [‘a‘,123,true,null,undefined];
var arrInArr = [[1,2],[3,4,5]]; 

2. new Array

var arr = new Array();
var arrWithLength = new Array(100);//undefined*100
var arrLikesLiteral = new Array(true,false,null,1,2,‘hi‘);//等價於[true,false,null,1,2,‘hi‘];

數組長度限制範圍:0~2的23次方-1。

數組讀寫

var arr = [1,2,3,4,5];
arr[1];//2
arr.length;//5

arr[5] = 6;//可以動態添加數組長度
arr.length:;//6

數組元素增刪

動態的,無需指定大小

//數組尾部增加元素
arr.push();
arr[arr.length] = 4;//equal to arr.push(4);
//數組頭部增加元素
arr.unshift(0);

var = [1,2];
delete arr[0];//刪除索引,值變為undefined
arr[0];//undefined , 長度不變。
arr.length;//2
0 in arr;//false,0索引已被刪除,如果不執行delete,主動為arr[0]設置值為undefined,0 in arr將得到true。

//數組尾部元素刪除
arr.pop();
arr.length--;//equal to arr.pop();

//數組頭部元素刪除
arr.shift();

數組叠代

1. 普通for循環

var i = 0,n=10;
var arr = [1,2,3,4,5];
for(;i<n;i++){
    console.log(arr[i]);
}

2. for in (不建議)

會叠代原型鏈上的屬性

var i = 0,n=10;
var arr = [1,2,3,4,5];
for(i in arr){
    console.log(arr[i]);
}

3. for of

var i = 0,n=10;
var arr = [1,2,3,4,5];
for(i of arr){
    console.log(i);
}

4.Array.prototype.forEach

var arr = [1,2,3,4,5];
arr.forEach(function(value,index,arr){
    console.log(value);
})

只為數組指定大小,未設置值,則不存在索引屬性(盡管裏面的數組元素均為undefined),但若認為設置數組元素為undefined,如arr[0] = undefined,則存在索引屬性。

數組(一)——數組創建及操作