1. 程式人生 > >JS之陣列詳解

JS之陣列詳解

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>');
 }