JS之陣列詳解
阿新 • • 發佈:2018-11-21
1、什麼是陣列?
- 陣列就是一組資料的集合;
- 其表現形式就是記憶體中的一段連續的記憶體地址;
- 陣列名稱其實就是連續記憶體地址的首地址。
2、陣列特點?
- 陣列定義時無需指定資料型別;
- 陣列定義時可以無需指定陣列長度;
- 陣列可以儲存任何資料型別的資料(比如說一個元素儲存整型,一個元素儲存字串型,這個在JS中是可以的)。
建立陣列的語法:
var arr=[值1,值2,值3]; //隱式建立
var arr=new Array(值1,值2,值3); //直接例項化
var array=new Array(size); //建立陣列並指定長度
JS中符號含義:
()表示函式執行
[]表示語法模擬,表示模擬Array類的例項(=new Array())
{}表示語法模擬,表示模擬Object類的例項(=new Object())
//方法一 var arr1 = [1,3,5,7,9]; document.write(arr1[2] + '<br>'); //方法二 var arr2 = new Array(2,4,6,8,10); document.write(arr2[3] + '<br>'); //方法三 var arr3 = new Array(3);//固定陣列長度為3 arr3[0] = 1; arr3[1] = 2; arr3[2] = 3; document.write(arr3[2] + '<br>');
3、關於陣列長度
陣列物件.length
在js中,每一個數組物件都可以呼叫length屬性,它表示陣列物件下共有幾個陣列元素。
var row = ['zhangsan','lisi','wangwu'];
doucument.write('共有'+row.length+'個人<br>');
var length = row.length;//對陣列進行遍歷
for (var i=0;i<length;i++){
doucument.write(row[i]+'<br>');
}
4、for...in語句
在js中,陣列不是資料型別,陣列的資料型別其實就是物件;
js中的for.....in語句可以實現對一個物件的所有屬性的遍歷;
也可以使用for...in語句實現對一個數組的所有元素的遍歷
語法:for( var i in array ){}
原理:陣列中有幾個元素,for..in語句就迴圈執行多少次;每次執行時,將當前陣列元素的下標存放到變數i中
var row = ['zhangsan','lisi','wangwu','xiaoqiang'];
for (var i in row){
document.write(i + ':' + row[i] + '<br>');
}
結果:0:zhangsan
1:lisi
2:wangwu
3:xiaoqiang
5、文字下標
格式:arr['key'] = value;
在js中,文字下標的陣列元素,不計入陣列長度
以文字下標形式新增到陣列,實際是以屬性形式新增到陣列物件中的
var arr = [1,2,3];
arr['first'] = 'zhangsan';
arr['second'] = 'lisi';
document.write(arr.length + '<br>');
document.write(arr.first + '<br>');
document.write(arr.second + '<br>');
結果:3
zhangsan
lisi
遍歷帶有文字下標的陣列:
var arr = [1,2,3];
arr['first'] = 'zhangsan';
arr['second'] = 'lisi';
for(var i in arr){
document.write(i + ':' + arr[i] + '<br>');
}
結果:0:1
1:2
2:3
first:zhangsan
second:lisi
6、多維陣列
var arr = [
[10,'zhangsan','male'],
[11,'lisi','female'],
[12,'wangwu','male']
];
for (var i in arr){
for(var j in arr[i]){
document.write(arr[i][j]);
}
document.write('<br>');
}