javaScript數組的相關操作【修改、刪除、新增、插入】
javaScript和Java之間的關係就好比雷鋒和雷峯塔一樣
——題記
javaScript是一種弱類型語言,在使用中並不像java一樣需要嚴格定義數據類型。而且在java中數組是不能隨便改變長度的,也就是說,數組是必須先聲明確定長度後在使用。而在javaScript中就不一樣了,數組可以任意修改變動,這樣也就出現了一個問題,如果你邊遍歷數組邊操作數組(比如刪除當前項,則所有之後的數組元素下標都將向前移動)是一件很危險的事情。
javaScript的數組是一個擁有堆棧和隊列自身優點的glob對象。也就是說javaScript數組可以通過其方法模擬LIFO和FIFO等操作,這也是javaScript數組強大的可操作性的體現。
1.插入:(包括從尾部添加元素,頭部添加元素或者任意位置的添加元素)
a). push:將元素添加到數組尾部且元素爲元素自身類型,返回數組長度
b). concat:將元素添加到數組尾部,但是如果添加的是數組的話,該數組將被拆開一個一個添加進去,返回數組內容
c). unshift:將元素從頭部添加到數組內且元素爲元素自身類型,返回數組長度。
d). 任意位置的添加元素(*見【3.修改】)
備註:
push與concat的區別?
1.push 遇到數組參數時,把整個數組參數作爲一個元素;而 concat 則是拆開數組參數,一個元素一個元素地加進去。
2.push 直接改變當前數組;concat 不改變當前數組。
2.刪除:(包括刪除尾部元素,刪除頭部元素,刪除任意位置元素)
a). pop:將元素從數組尾部刪除,每次只能刪除一個元素,返回被刪除的值,如果數組爲空則返回undefined
b). shift:將元素從數組頭部刪除,每次只能刪除一個元素,返回被刪除的值,如果數組爲空則返回undefined
c). 任意位置的添加元素(*見【3.修改】)
3.修改:(任意位置的修改)
splice(start,deleteCount,newVal1,newVal2,…):從start開始,一共刪除deleteCount個數組元素,並緊接着之後添加任意個數新元素。
從上面我們可以看出,我們具體要對數組做什麼樣的操作主要決定於後面的newVal。
刪除:
修改:
插入:
4.其他操作
a). join:將數組合併爲字符串,默認與逗號【,】分隔,並且無論數組內有多少個數組都會被一一拆開成字符串,但是如果遇到數組內有對象則直接與數組對象的形式顯示到字符串中。
備註:字符串拆分爲數組(string.split(separator,arrayCount))
separator:拆分依據,可以是正則表達式或者字符/字符串,如果參數爲空則整個字符串將爲一個數組元素。
arrayCount:指定生成的數組的長度,如果爲空則顯示生成的完整數組。
b). reverse:將數組排列順序翻轉
c). slice(start,end):通過數組下標截取數組,截取出的內置從start後(不包含start處元素)開始,到end結束(包含end處元素),如果元素爲負值則倒着來計數。
d). sort(sortby):數組內排序,默認爲升序(按照首字母和數字大小),如果需要特殊的排序規則可以通過傳人一個sortby方法進行自定義。
function sortby(array1,array2){return array1 > array2 ? -1:1;}
5.注意事項
1.不要在遍歷數組的同時操作數組改變數組的長度,這樣將對遍歷造成直接的影響。
2.刪除數組中元素有兩種方法:
一種直接刪除元素並改變了數組的長度”使用array.splice(start,deleteCount)”
另一種是類似與刪除對象一樣的方法“deletearray[i]”,這樣的方法只刪除數組元素的值並用undefined替代原元素位置而不改變數組的長度。