Array是JavaScript中常用的類型,並且JavaScript中的數組和其他語言的數組有比較大的區別。JavaScript中數組中存放的數據類型不一定相同,而且數組的長度也是可改變的。
下面記錄一下Array的常用操作:
新建數組可以用一下方法:
var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 var obj1 = new Array('zdy',22,'湖北武漢','計算機科學與技術'); var obj2 = new Array(4); obj2[0] = 'zdy'; obj2[1] = 22; obj2[2] = '湖北武漢'; obj2[3] = '計算機科學與技術';上面方式創建數組其實是等價的,輸出:
alert(obj); //返回zdy,22,湖北武漢,計算機科學與技術 alert(obj1); //返回zdy,22,湖北武漢,計算機科學與技術 alert(obj2); //返回zdy,22,湖北武漢,計算機科學與技術
前面提到的JavaScript中數組裡面存放的數據類型不一定要一致,所以,我們還可以創建如下的數組:
var obj3 = [ 'zdy', [1,'2',true], { name:'zdy', age:22, address:'湖北武漢' } ];下面看看輸出的情況:
alert(obj3);//返回 zdy,1,2,true,[object Object] alert(obj3[1][2]);//返回 true alert(obj3[2].address);//返回 湖北武漢
對象或者數組都有這三個方法,這三個返回返回值一樣,就是將數組拼接成字符串返回,默認情況下以逗號分隔。例如:
var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 alert(obj.toString()); //toString()方法,返回zdy,22,湖北武漢,計算機科學與技術 alert(obj.toLocaleString()); //toLocaleString()方法,返回zdy,22,湖北武漢,計算機科學與技術 alert(obj.valueOf()); //valueOf()方法,返回zdy,22,湖北武漢,計算機科學與技術
上面三個方法返回的字符串是以逗號分隔,如果我們需要換成其他的分隔符的話,就需要用到join方法,該方法將會把字符號按照指定的字符拼接後返回。
var obj = ['zdy',22,'湖北武漢','計算機科學與技術']; alert(obj.join("|")); //返回 zdy|22|湖北武漢|計算機科學與技術
JavaScript提供了push()/pop()方法,使得我們可以想操作棧(先進後出)一樣操作數組,數組的插入和刪除均在棧頂(數組的末尾)進行。
pusp()方法可以接受任意數量的參數,作用是將這些參數添加到數組的末尾,並返回添加後數組的長度。
pop()則是將數組的最後一個元素刪除,並返回刪除的元素。
var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 alert(obj.push("計算機",160)); //向數組的末尾追加元素,返回6 alert(obj); //返回 zdy,22,湖北武漢,計算機科學與技術,計算機,160 alert(obj.pop()); //刪除數組的最後一個元素,並返回刪除的元素 160 alert(obj); //返回 zdy,22,湖北武漢,計算機科學與技術,計算機
JavaScript也提供了shift()/unshift()方法,使得我們可以想操作隊列(先進先出)一樣操作數組,數組的插入和刪除均在分別在對尾(數組的末尾)和對頭(數組首部)進行。
pusp()方法可以接受任意數量的參數,作用是將這些參數添加到數組的末尾,並返回添加後數組的長度。
shift()方法可以從數組的前端刪除一個元素,並返回刪除的元素。
unshift()方法可以從數組的前端插入一個元素,並返回新數組的長度。
var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 alert(obj.push("添加的元素"));//向數組的末尾追加一個元素,返回5 alert(obj); //返回 zdy,22,湖北武漢,計算機科學與技術,添加的元素 alert(obj.shift());//刪除數組中的第一個元素,返回刪除的元素 zdy alert(obj); //返回 22,湖北武漢,計算機科學與技術,添加的元素 alert(obj.unshift("新增首部元素"));//在數組的首部加入新元素,並返回數組的長度 5 //********注意:在IE中unshift返回的是undefined********** alert(obj); //返回 新增首部元素,22,湖北武漢,計算機科學與技術,添加的元素
concat()方法可以基於已有數組創建新數組,用於連接數組。
var a1 = [1,2,3]; var a2 = a1.concat(4,5);//創建新數組,並將a1添加兩個元素後賦值給a2 alert(a1);//返回 1,2,3 alert(a2);//返回 1,2,3,4,5
slice()方法用於提取數組中的部分元素。
var a1 = [1,2,3,4,5,6]; var a2 = a1.slice(2,4);//返回第2到第4個之間的元素,不包括第4個 alert(a1);//返回 1,2,3,4,5,6 alert(a2);//返回 3,4
splice()方法重用來向數組中插入、修改、刪除元素。
//splice中的插入 var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 obj.splice(1,0,"新插入的元素1",123); //從第一個開始插入2個元素 alert(obj);//返回 zdy,新插入的元素1",123,22,湖北武漢,計算機科學與技術
//splice中的修改 var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 alert(obj); //返回 zdy,22,湖北武漢,計算機科學與技術 alert(obj.splice(1,1,19));//修改第一個元素為19,返回被修改之前的元素 22 alert(obj); //返回 zdy,19,湖北武漢,計算機科學與技術 alert(obj.splice(1,2,20,"湖北恩施")); //修改從第一個元素開始的兩個元素為20和“湖北恩施” //返回 19,湖北武漢 alert(obj);//返回 zdy,20,湖北恩施,計算機科學與技術
//splice中的刪除 var obj = ['zdy',22,'湖北武漢','計算機科學與技術'];//創建一個數組變量 alert(obj); //返回 zdy,22,湖北武漢,計算機科學與技術 alert(obj.splice(1,2));//刪除從第一個元素開始的2個元素,返回被刪除的元素 22,湖北武漢 alert(obj); //返回 zdy,計算機科學與技術