javascript中的數組對象

    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的內容    

相關文章
相關標籤/搜索