JavaScript基礎——使用數組

  Array對象提供存儲和處理一組其餘對象的一種手段。數組能夠存儲數值、字符串或其餘JavaScript對象。建立JavaScript數組有幾種不一樣的方法。例如,下面的語句穿件一樣的駐足的3個相同的版本:數組

  var arr = ["one","two","three"];app

  var arr2 = new Array();函數

 

  arr2[0] = "one";spa

  arr2[1] = "two";對象

  arr2[2] = "three";排序

 

  arr3.push("one");索引

  arr3.push("two");three

  arr3.push("three");ip

  第一種方法定義了arr,並使用[]在一條語句中設置它的內容。第二種方法建立arr2對象,而後使用直接索引賦值來增長條目。第三種方法建立arr3對象,而後使用擴展數組的最佳選擇push()方法來把條目推到數組上。字符串

  要肯定數組中元素的個數,能夠使用數組對象的length屬性,以下面的例子所示:

  var numOfItems = arr.length;

  數組遵循一個從零開始的索引,這意味着第一項在索引0上,等等。例如,在下面的代碼中,變量first的值是Monday,變量last的值將是Friday:

  var

  week = ["Mondy","Tuesday","Wednesday","Thursday","Friday"];

  var first = w [0];

  var last = week[week.length-1];

   數組對象有許多內置的函數,使你能夠用不一樣的方式來訪問和操做數組。下表描述了鏈接到Array對象,讓你操做數組內容的方法。

用來操做Array對象的方法

方  法 說  明
concat(arr1,arr2,...) 返回一個數組和做爲參數傳遞的數組的鏈接副本
indexOf(value) 返回數組中value的第一個索引。或若是沒有找到該條目,返回-1
join(separator) 把一個數組中的全部元素鏈接爲由separator分隔的單個字符串。若是沒有指定分隔符,則使用逗號做爲分隔符
lastIndexOf(value) 返回數組中value的最後一個索引。或若是沒有找到該條目,返回-1
pop() 刪除數組的最後一個元素,並返回該元素
push(item1,item2,...) 添加一個或多個新元素到數組的結尾,並返回數組的新長度
reverse() 反轉數組中全部元素的順序
shift() 刪除數組的第一個元素,並返回該元素
slice(start,end) 返回start和end索引之間的元素
sort(sortFunction) 對數組的元素排序。sortFunction是可選的
splice(index,count,item1,item2...) 在index指定的索引處,刪除count個條目,而後在index出插入做爲參數傳入的任意可選條目
toString() 返回一個數組的字符串形式
unshift() 將新元素添加到數組的開頭,並返回新的長度
valueOf() 方法返回一個數組對象的原始值

  

  一、合併數組

  你能夠用合併String對象的相同方式來合併數組:使用+語句或使用concat()方法。在下面的代碼中,arr3最終和arr4是同樣的:

    var arr1 = [1,2,3];

    var arr2 = ["one","two","three"];

    var arr3 = arr1 + arr2;

    var arr4 = arr1.concat(arr2);

  注意

  你能夠將一個數字數組和一個字符串數組合並。數組中的每一項都將保持本身的對象類型。然而,當你使用數組中的條目時,須要對有多個數據類型的數組保持跟蹤,這樣你纔不會陷入麻煩。

 

  二、遍歷數組

  你能夠使用for或for/in循環對數組進行遍歷。下面的代碼說明了使用每種方法再數組中遍歷每一個條目的寫法:

  var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];

  for ( var i = 0; i<week.length; i++){

    console.log("<li>" + week[i] + "</li>");

  }

  for (dayIndex in week){

    console.log("<li>" + week[dayIndex] + "</li>");

  }

 

  三、將數組轉換爲字符串

  Array對象的一個很是有用的功能是,將一個數組的元素結合在一塊兒,製造一個String對象,經過使用join()方法指定分隔符分隔。例如,下面的代碼把時間組件從新鏈接成12:10:36的格式:

  var timeArr = [12,10,36]

  var timeStr = timeArr.join(":");

 

  四、檢查數組是否包含某個條目

  你常常須要檢查數組中是否包含某一個條目。能夠使用indexOf()方法作到這一點。若是代碼沒有找到列表中的條目,則返回-1。若是一個條目在week數組中,下面的函數就把一條消息寫到控制檯:

  function message(day){

    var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];

    if (week.indexOf(day) != -1){

      console.log("Happy" + day);

    }

  }

 

  五、在數組中添加條目和刪除條目

  使用各類內置的方法,有多種往Array對象添加條目,並從Array對象刪除條目的方法。下表列出了一些在本書中使用的不一樣方法。

用來在數組添加或刪除元素的Array對象方法,數組顯示爲從表開始到末尾的進度

語  句 x的值 arr的值
var arr = [1,2,3,4,5]; undefined 1,2,3,4,5
var x = 0; 0 1,2,3,4,5
x = arr.unshift("zero"); 6(長度) zero,1,2,3,4,5
x = arr.push(6,7,8); 9(長度) zero,1,2,3,4,5,6,7,8
x = arr.shift(); zero 1,2,3,4,5,6,7,8
x = arr.pop() 8 1,2,3,4,5,6,7
x = arr.splice(3,3,"four","five","six"); 4,5,6 1,2,3,four,five,six,7
x = arr.splice(3,1); four 1,2,3,five,six,7
x = arr.splice(3); five,six,7 1,2,3
相關文章
相關標籤/搜索