1.定義javascript
要了解數組對象,首先咱們先要了解什麼是數組。所謂數組,就是相同數據類型的元素,按必定順序排列的集合,就是把有限個類型相同的變量用一個名字命名,而後用編號區分他們的變量集合,這個名字稱爲數組,編號稱爲下標。java
首先咱們要定義一個數組,可是如何去定義數組呢,在JavaScript中定義數組的方法不少,經常使用的四種方法以下所示:數組
方法一 :函數
var array = new Array(); array[0] = 1; array[1] = 2; array[2] = 3;
方法二:測試
var array = new Array(3); array[0] = 1; array[1] = 2; array[2] = 3;
方法三:this
var array = new Array(1,2,3);
方法四:prototype
var array = [1,2,3]
針對於上面的四種方法,你們經常使用的爲方法四。code
2.操做對象
定義好一個數組以後,咱們要操做數組中的元素,咱們應該如何去操做呢,好比說如何設置固定位置的元素的值,如何添加元素,如何移除元素呢。其實對於JavaScript對於數組的,也就是array 的操做的方法仍是很簡單的。索引
咱們給Array中的固定位置的元素賦值,能夠經過數組名和下標進行賦值,以下。
var a = new Array(4); a[0] = 1, a[1] = 2, a[2] = 3, a[3] = 4; console.log(a);
對於上面的輸出結果爲,[1,2,3,4];
那麼不少人就會以爲,對於上面的數組咱們給第5個元素賦值,會不會出問題,如a[5]=6,;這樣的賦值,其實對於JavaScript來講,這樣賦值其實也是能夠, 咱們定義了一個數組的大小後,其實仍是能夠對數組的大小進行自動的調整。
對於js的元素添加,一般使用一個push來進行添加的。
var array = new Array(); array.push(1) console.log(array);
經過上面的方法的,能夠對數組中添加元素,這樣的添加方法。
而後咱們當咱們但願移除數組中的一個元素的時候,此時的,咱們能夠經過Array.pop()函數來對數組中的元素進行移除。具體的操做以下所示
內置函數:
你們都知道,在js中,Array是js一個內置對象,其內置有部分的函數,這些函數供咱們使用,相對來講是比較方便的。
concat,constructor,entries,every ,filter ,forEach ,hasOwnProperty ,indexOf ,isPrototypeOf ,join ,keys ,keys ,lastIndexOf ,length,map ,pop ,propertyIsEnumerable ,push ,reduce ,reduceRight ,reverse ,shift ,slice ,some ,sort ,splice ,toLocaleString ,toString ,unshift ,valueOf ,toString
對於上面那麼多的內置函數,其實咱們經常使用也並非不少,這裏就不進行一一介紹了,這邊就對其中個別的函數進行介紹
concat:連接,因爲javascript中的變量屬於弱變量,因此任意兩個array都是能夠進行連接的,具體的連接實例以下所示:
var a = [1,2,3,4], b = ['a','b','c']; var c = a.concat(b); console.log('a =' + a.join(',')); console.log('b =' + b.join(',')); console.log('c =' + c.join(',')); 輸出結果爲 : a =1,2,3,4 b =a,b,c c =1,2,3,4,a,b,c
其實經過concat進行數組鏈接的時,原來的數組並無發生變化,只是返回的結果進行了變化。因此這個是須要注意的一個點。
every:其中這個其實就是對數組進行一個簡答的遍歷,而後針對這種狀況,來進行的操做,下面給出了一個關因而every的一個使用方法:
var arr:Array = [15,7,12,15]; var testEvery1:Boolean = arr.every(isNum); var testEvery2:Boolean = arr.every(isThanTen); trace(testEvery1); //true trace(testEvery2); //false var testSome1:Boolean = arr.some(isThanTen); trace(testSome1); //true //測試函數 //是不是數字 function isNum(item:*,index:int,arr:Array):Boolean { return item is Number; } //是否大於10 function isThanTen(item:*,index:int,arr:Array):Boolean { return item>10; }
固然針對於every的使用,在實際的應用中咱們用的並非不少。
indexOf:查找當前的元素所在的位置的索引。具體的若是不存在則返回-1.若是存在,則返回相應的索引。
var a =[1,2,3,4,5,6,7]; console.log(a.indexOf(3));
輸出的結果爲2,也就是3的索引,這個索引從0開始進行計數。因此這個還算是比較容易理解的。
join:是將數組中的各個元素進行tostring後進行連接,連接符就是join中的內容,若是join中的參數不存在則連接符爲空,其返回的結果爲字符串。
pop:這是一個從數組中取出元素的函數,
push;這個函數是向數組中添加一個元素的
length:得到數組長度的函數,
對於array數組,咱們還會常常但願可以使用其中的一個方法,就是移除數組中的某個元素,以前都是本身百度,而後會百度到這樣的一個方法
// 添加array的remove方法 Array.prototype.remove = function (dx) { if (isNaN(dx) || dx > this.length) { return false; } for (var i = 0, n = 0; i < this.length; i++) { if (this[i] != this[dx]) { this[n++] = this[i] } } this.length -= 1; }
後來在作東西的時候我又碰見這樣的的一個方法,那就是splice,這個方法,咱們須要傳兩個參數,第一個參數就是要移除的元素的開始位置,第二個參數就是,移除的個數,若是第二個參數不傳的話,則移除從第一個參數的位置,到數組結尾的全部元素,並將移除的內容返回出來。
var arr = [1,2,3,4,5,6]; var arr1 = [1,2,3,4,5,6]; var arr2 = [1,2,3,4,5,6]; arr.splice(1,1); // 返回結果爲[2], 移除後,arr = [1,3,4,5,6]; arr.splice(1,2); // 返回結果爲[2,3] , 移除後arr1 = [1,4,5,6]; arr.splice(1); // 返回結果爲[2,3,4,5,6], 移除後的結果爲: [1]
上面的則是咱們經常使用的remove的內容