默認狀況下,數組字符串都會以逗號隔開。若是使用join()方法,則可使用不一樣的分
隔符來構建這個字符串。
前端
- var box = ['李炎恢', 28, '計算機編程'];
- alert(box.join('|')); //李炎恢|28|計算機編程
棧方法
ECMAScript 數組提供了一種讓數組的行爲相似於其餘數據結構的方法。也就是說,可
以讓數組像棧同樣,能夠限制插入和刪除項的數據結構。棧是一種數據結構(後進先出),也
就是說最新添加的元素最先被移除。而棧中元素的插入(或叫推入)和移除(或叫彈出),只發
生在一個位置——棧的頂部。ECMAScript 爲數組專門提供了push()和pop()方法。算法
push()方法能夠接收任意數量的參數,把它們逐個添加到數組的末尾,並返回修改後數
組的長度。而pop()方法則從數組末尾移除最後一個元素,減小數組的length 值,而後返回
移除的元素。編程
- var box = ['李炎恢', 28, '計算機編程']; //字面量聲明
- alert(box.push('鹽城')); //數組末尾添加一個元素,而且返回長度
- alert(box); //查看數組
- box.pop(); //移除數組末尾元素,並返回移除的元素
- alert(box); //查看元素
隊列方法
棧方法是後進先出,而列隊方法就是先進先出。列隊在數組的末端添加元素,從數組的
前端移除元素。經過push()向數組末端添加一個元素,而後經過shift()方法從數組前端移除
一個元素。數組
- var box = ['李炎恢', 28, '計算機編程']; //字面量聲明
- alert(box.push('鹽城')); //數組末尾添加一個元素,而且返回長度
- alert(box); //查看數組
- alert(box.shift()); //移除數組開頭元素,並返回移除的元素
- alert(box); //查看數組
ECMAScript 還爲數組提供了一個unshift()方法,它和shift()方法的功能徹底相反。
unshift()方法爲數組的前端添加一個元素。瀏覽器
- var box = ['李炎恢', 28, '計算機編程']; //字面量聲明
- alert(box.unshift('鹽城','江蘇')); //數組開頭添加兩個元素
- alert(box); //查看數組
- alert(box.pop()); //移除數組末尾元素,並返回移除的元素
- alert(box); //查看數組
PS:IE 瀏覽器對unshift()方法老是返回undefined 而不是數組的新長度。數據結構
重排序方法
數組中已經存在兩個能夠直接用來排序的方法:reverse()和sort()。
reverse() 逆向排序ide
- var box = [1,2,3,4,5]; //數組
- alert(box.reverse()); //逆向排序方法,返回排序後的數組
- alert(box); //源數組也被逆向排序了,說明是引用
sort() 從小到大排序函數
- var box = [4,1,7,3,9,2]; //數組
- alert(box.sort()); //從小到大排序,返回排序後的數組
- alert(box); //源數組也被從小到大排序了
sort 方法的默認排序在數字排序上有些問題,由於數字排序和數字字符串排序的算法是
同樣的。咱們必須修改這一特徵,修改的方式,就是給sort(參數)方法傳遞一個函數參數。
這點能夠參考手冊說明。spa
- function compare(value1, value2) { //數字排序的函數參數
- if (value1 < value2) { //小於,返回負數
- return -1;
- } else if (value1 > value2) { //大於,返回正數
- return 1;
- } else { //其餘,返回0
- return 0;
- }
- var box = [0,1,5,10,15]; //驗證數字字符串,和數字的區別
- alert(box.sort(compare)); //傳參
PS:若是要反向操做,即從大到小排序,正負顛倒便可。固然,若是要逆序用reverse()
更加方便。blog
操做方法
ECMAScript 爲操做已經包含在數組中的元素提供了不少方法。concat()方法能夠基於當
前數組建立一個新數組。slice()方法能夠基於當前數組獲取指定區域元素並建立一個新數組。
splice()主要用途是向數組的中部插入元素。
- var box = ['李炎恢', 28, '鹽城']; //當前數組
- var box2 = box.concat('計算機編程'); //建立新數組,並添加新元素
- alert(box2); //輸出新數組
- alert(box); //當前數組沒有任何變化
- var box = ['李炎恢', 28, '鹽城']; //當前數組
- var box2 = box.slice(1); //box.slice(1,3),2-4 之間的元素
- alert(box2); //28,鹽城
- alert(box); //當前數組
splice 中的刪除功能:
- var box = ['李炎恢', 28, '鹽城']; //當前數組
- var box2 = box.splice(0,2); //截取前兩個元素
- alert(box2); //返回截取的元素
- alert(box); //當前數組被截取的元素被刪除
splice 中的插入功能:
- var box = ['李炎恢', 28, '鹽城']; //當前數組
- var box2 = box.splice(1,0,'計算機編程','江蘇'); //沒有截取,但插入了兩條
- alert(box2); //在第2 個位置插入兩條
- alert(box); //輸出
splice 中的替換功能:
- var box = ['李炎恢', 28, '鹽城']; //當前數組
- var box2 = box.splice(1,1,100); //截取了第2 條,替換成100
- alert(box2); //輸出截取的28
- alert(box); //輸出數組