JS數(shù)組的創(chuàng)建:
1,使用Array數(shù)組的方式:
var arrayObj = new Array(); //創(chuàng)建一個數(shù)組
var arrayObj = new Array([size]); //創(chuàng)建一個數(shù)組并指定長度,注意不是上限,是長度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 創(chuàng)建一個數(shù)組并賦值
?? 要說明的是,雖然第二種方法創(chuàng)建數(shù)組指定了長度,但實際上所有情況下數(shù)組都是變長的,也就是說即使指定了長度為5,仍然可以將元素存儲在規(guī)定長度以外的,注意:這時長度會隨之改變。
2,采用字面量的方法
var arr = [];//創(chuàng)建一個空數(shù)組
var arr2 = [1,2,3];//創(chuàng)建一個有三個元素的數(shù)組
JS數(shù)組的主要方法:
1,數(shù)組元素的添加
arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數(shù)組結(jié)尾,并返回數(shù)組新長度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數(shù)組開始,數(shù)組中的元素自動后移,返回數(shù)組新長度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//將一個或多個新元素插入到數(shù)組的指定位置,插入位置的元素自動后移,返回""。
2,數(shù)組元素的刪除
arrayObj.pop(); //移除最后一個元素并返回該元素值(pop和push連在一起記憶,隊列形式的操作)
arrayObj.shift(); //移除最前一個元素并返回該元素值,數(shù)組中元素自動前移(shift,unshift針對的都是數(shù)組最前面的元素,棧形式的數(shù)據(jù)操作)
arrayObj.splice(deletePos,deleteCount); //刪除從指定位置deletePos開始的指定數(shù)量deleteCount的元素,數(shù)組形式返回所移除的元素
注意:splice方法既可以用于數(shù)組的刪除也可以用于數(shù)組的插入
splice() 方法向/從數(shù)組中添加/刪除項目,然后返回被刪除的項目。該方法會改變原始數(shù)組。
? arrayObject.splice(index,howmany,item1,.....,itemX)
index:必填,數(shù)組刪除或插入的位置。使用負數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。
howmany:必需。要刪除的項目數(shù)量。如果設(shè)置為 0,則不會刪除項目。
? item1, ..., itemX:可選。向數(shù)組添加的新項目。
返回值:新數(shù)組,要是刪除的話,也會包括被刪除的元素
??? 要是刪除的話,splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數(shù)列表中聲明的一個或多個值來替換那些被刪除的元素。如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數(shù)組
請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數(shù)組進行修改。
3,數(shù)組元素截取
1,slice方法:
arrayObject.slice(start,end)可以從數(shù)組中返回start下標(biāo)開始取值,直到end下標(biāo)結(jié)束(不包括)。
??? start:必需。規(guī)定從何處開始選取。如果是負數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數(shù)第二個元素,以此類推。
? ? end:可選。規(guī)定從何處結(jié)束選取。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)。如果沒有指定該參數(shù),那么切分的數(shù)組包含從 start 到數(shù)組結(jié)束的所有元素。如果這個參數(shù)是負數(shù),那么它規(guī)定的是從數(shù)組尾部開始算起的元素。
若end為 返回值,返回一個新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
注意:請注意,該方法并不會修改數(shù)組,而是返回一個子數(shù)組。如果想刪除數(shù)組中的一段元素,應(yīng)該使用方法 Array.splice()。
4,數(shù)組元素的合并
Contact是將多個數(shù)組(也可以是字符串,或者是數(shù)組和字符串的混合)連接為一個數(shù)組,返回連接好的新的數(shù)組
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);
如果沒有參數(shù),則表示對數(shù)組進行了一次深拷貝。
參數(shù)也可以是string類型
5,數(shù)組的拷貝
arrayObj.slice(0); //slice(start,end)start設(shè)置為0,省略end則表示從頭截取到為,即對數(shù)據(jù)進行了一份拷貝。返回數(shù)組的拷貝數(shù)組,注意是一個新的數(shù)組,不是指向
arrayObj.concat(); //返回數(shù)組的拷貝數(shù)組,注意是一個新的數(shù)組,不是指向。
6,數(shù)組的排序
arrayObj.reverse(); //反轉(zhuǎn)元素(最前的排到最后、最后的排到最前),返回數(shù)組地址
arrayObj.sort(); //對數(shù)組元素排序,返回數(shù)組地址
7,數(shù)組與字符串互換?
數(shù)組的toString(),valueOf()方法可是使得數(shù)組以字符串的形式輸出,但是是存在差別:
?toString一定將所有內(nèi)容轉(zhuǎn)為字符串
?valueOf取出對象內(nèi)部的值,不進行類型轉(zhuǎn)換
另外,Array還有join()方法,是以指定的分隔符,來構(gòu)建字符串。
字符串轉(zhuǎn)數(shù)組:使用split()方法
valueOf取出對象內(nèi)部的值,不進行類型轉(zhuǎn)換。雖然以字符串的形式輸出內(nèi)容,但是還是數(shù)組格式。split()就是將字符串轉(zhuǎn)為了數(shù)組。

