一:改變原數(shù)組的方法:
shift():用于把數(shù)組的第一個元素從其中刪除磅甩,并返回第一個元素的值。
語法:arr.shift()
如果數(shù)組是空的姥卢,那么 shift() 方法將不進行任何操作卷要,返回 undefined 值。該方法不創(chuàng)建新數(shù)組独榴,而是直接修改原有的 arr僧叉。
unshift():向數(shù)組的開頭添加一個或更多元素,并返回新的長度棺榔。
語法:arr.unshift(newelement1,newelement2,....,newelementX)
unshift() 方法不創(chuàng)建新的數(shù)組瓶堕,而是直接修改原有的數(shù)組。
reverse():用于顛倒數(shù)組中元素的順序
語法:arr.reverse()
該方法會改變原來的數(shù)組症歇,而不會創(chuàng)建新的數(shù)組
sort:用于對數(shù)組的元素進行排序
語法:arr.sort()
數(shù)組在原數(shù)組上進行排序郎笆,不生成副本
如果調(diào)用該方法時沒有使用參數(shù),將按字母順序?qū)?shù)組中的元素進行排序
如果想按照其他標準進行排序忘晤,就需要提供比較函數(shù)宛蚓,該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字设塔。比較函數(shù)應該具有兩個參數(shù) a 和 b凄吏,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應該出現(xiàn)在 b 之前壹置,則返回一個小于 0 的值竞思。
若 a 等于 b,則返回 0钞护。
若 a 大于 b盖喷,則返回一個大于 0 的值。
function sortNumber(a,b)
{
return a - b
}
var arr=[10,20,5,7,80,21];
console.log(arr.sort(sortNumber)) //[ 5, 7, 10, 20, 21, 80 ]
pop():用于刪除并返回數(shù)組的最后一個元素
語法:arr.pop()
pop() 方法將刪除 arrayObject 的最后一個元素难咕,把數(shù)組長度減 1课梳,并且返回它刪除的元素的值。如果數(shù)組已經(jīng)為空余佃,則 pop() 不改變數(shù)組暮刃,并返回 undefined 值。
push(): 向數(shù)組的末尾添加一個或多個元素爆土,并返回新的長度椭懊。
語法:arr.push()
push() 方法可把它的參數(shù)順序添加到 arr的尾部。它直接修改 arr步势,而不是創(chuàng)建一個新的數(shù)組氧猬。push() 方法和 pop() 方法使用數(shù)組提供的先進后出棧的功能
splice:向/從數(shù)組中添加/刪除項目背犯,然后返回被刪除的項目
該方法會改變原數(shù)組
語法:arr.splice(index,howmany,item1,.....,itemX)
注:index:必需。整數(shù)盅抚,規(guī)定添加/刪除項目的位置漠魏,使用負數(shù)可從數(shù)組結尾處規(guī)定位置。
howmany:必需妄均。要刪除的項目數(shù)量柱锹。如果設置為 0,則不會刪除項目丰包。
item1, ..., itemX: 可選禁熏。向數(shù)組添加的新項目。
1)添加一個元素
var arr =["George","John","Thomas","James"];
arr.splice(2,0,"px");
console.log(arr); //[ 'George', 'John', 'px', 'Thomas', 'James']
2)刪除位于 index 2 的元素邑彪,并添加一個新元素來替代被刪除的元素
var arr =["George","John","Thomas","James"];
arr.splice(2,1,"px");
console.log(arr); //[ 'George', 'John', 'px', 'James', 'Adrew' ]
二:不改變原數(shù)組的方法:
concat():連接兩個或多個數(shù)組匹层。
該方法不會改變現(xiàn)有的數(shù)組,而僅僅會返回被連接數(shù)組的一個副本锌蓄。
語法:arr.concat(arrayX,arrayX,......,arrayX)
var a = [1,2,3];
console.log(a.concat(4,5));//[ 1, 2, 3, 4, 5 ]
join():把數(shù)組中的所有元素放入一個字符串。元素是通過指定的分隔符進行分隔的撑柔。
語法:arrt.join(separator)
separator:可選瘸爽。指定要使用的分隔符。如果省略該參數(shù)铅忿,則使用逗號作為分隔符剪决。
var arr =["George","John","px","James","Adrew"];
console.log(arr.join("-")) //George-John-px-James-Adrew
slice():從已有的數(shù)組中返回選定的元素。
語法:arr.slice(start,end)
start:必需檀训。規(guī)定從何處開始選取柑潦。如果是負數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置峻凫。
end 可選渗鬼。規(guī)定從何處結束選取。該參數(shù)是數(shù)組片斷結束處的數(shù)組下標荧琼。如果沒有指定該參數(shù)譬胎,那么切分的數(shù)組包含從 start 到數(shù)組結束的所有元素。如果這個參數(shù)是負數(shù)命锄,那么它規(guī)定的是從數(shù)組尾部開始算起的元素堰乔。
返回一個新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素脐恩。
var arr =["George","John","px","James","Adrew"];
console.log(arr.slice(1)) //[ 'John', 'px', 'James', 'Adrew' ]
onsole.log(arr.slice(0,3))//[ 'George', 'John', 'px' ]