一、添加
1、push() 方法將一個(gè)或多個(gè)元素添加到數(shù)組的末尾,并返回?cái)?shù)組的新長(zhǎng)度。
2、unshift() 方法將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭,并返回新數(shù)組的長(zhǎng)度。
二、刪除
1、pop()方法從數(shù)組中刪除最后一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長(zhǎng)度。
2、shift() 方法從數(shù)組中刪除第一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長(zhǎng)度。
三、操作
1、concat() 方法用于合并兩個(gè)或多個(gè)數(shù)組。此方法不會(huì)更改現(xiàn)有數(shù)組,而是返回一個(gè)新數(shù)組。
var color = ['red','green','blue'];
var color2 = color.concat('yellow',['black','white']);
console.log(color2) //red,green,blue,yellow,black,white
2、slice()方法返回一個(gè)從開(kāi)始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個(gè)新數(shù)組對(duì)象,原始數(shù)組不會(huì)被修改。
var colors = ['red','green','blue','black','white'];
var colors2 = colors.slice(1) //green,blue,black,white
var colors3 = colors.slice(1,4) //green,blue,black
3、splice()方法始終會(huì)返回一個(gè)數(shù)組,該數(shù)組包含從原始數(shù)組中刪除的項(xiàng)(如果沒(méi)有刪除任何項(xiàng),則返回一個(gè)空數(shù)組),用途最廣,有如下3種
刪除:需指定2個(gè)參數(shù),要?jiǎng)h除的第一項(xiàng)位置和要?jiǎng)h除的項(xiàng)數(shù)
插入:需提供3個(gè)參數(shù),起始位置、0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng),如要插入多個(gè) 項(xiàng) ,再傳入第四,五...
替換:需指定3個(gè)參數(shù),起始位置、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)
var colors = ['red','green','blue'];
var removed = colors.splice(0,1);
console.log(colors); //green,blue
console.log(removed); //red
var removed = colors.splice(1,0,'black');
console.log(colors); //green,black,blue
console.log(removed); // 返回空數(shù)組
var removed = colors.splice(0,2,'yellow','white');
console.log(colors); //yellow,white,blue
console.log(removed); //red,green
四、位置方法
indexOf()方法從數(shù)組的開(kāi)頭(位置0)開(kāi)始向后查找,
lastIndexOf()方法從數(shù)組的末尾開(kāi)始向前查找,
這兩個(gè)方法都接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引,沒(méi)找到返回-1
五、重排序方法
sort()方法按升序排列數(shù)組項(xiàng)--即最小的值位于最前面,最大的值排在后面。
reverse()降序排列;
注意:如果調(diào)用該方法時(shí)沒(méi)有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說(shuō)得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎn),首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較,再接收一個(gè)比較函數(shù)作為參數(shù),以便我們指定哪個(gè)值位于哪個(gè)值的前面;
function compare(val1,val2) {
if(val1 < val2){
return -1;
}else if(val1 > val2){
return 1;
}else {
return 0
}
}
var val = [0,1,35,2,18];
console.log(val.sort(compare)); // 0,1,2,18,35
console.log(val.reverse(compare)); //35,18,2,1,0
console.log(val.sort()); // 0,1,18,2,35
console.log(val.reverse()); //35,2,18,1,0
六、迭代方法
1、forEach(),對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),這個(gè)方法沒(méi)有返回值。本質(zhì)上與使用for循環(huán)迭代數(shù)組是一樣的
2、map() 創(chuàng)建一個(gè)新數(shù)組,其結(jié)果是該數(shù)組中的每個(gè)元素都調(diào)用一個(gè)提供的函數(shù)后返回的結(jié)果。
七、轉(zhuǎn)換方法
1、toString()方法會(huì)返回由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)以逗號(hào)分隔的字符串
2、valueOf()返回的還是數(shù)組
3、toLocaleString()方法也會(huì)返回由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)以逗號(hào)分隔的字符串
區(qū)別:
var date = new Date();
console.log(date.valueOf()); //1524815456865
console.log(date.toString()); //Fri Apr 27 2018 15:50:56 GMT+0800 (CST)
console.log(date.toLocaleString()); //2018/4/27 下午5:34:56
var num = new Number(1337);
console.log(num.valueOf()); //1337,返回一個(gè) Number 對(duì)象的基本數(shù)字值
console.log(num.toString()); //1337,字符串
console.log(num.toLocaleString()); //1,337,把數(shù)字轉(zhuǎn)換為字符串,使用本地?cái)?shù)字格式順序
注意:
toLocalString()是調(diào)用每個(gè)數(shù)組元素的 toLocaleString() 方法,然后使用地區(qū)特定的分隔符把生成的字符串連接起來(lái),形成一個(gè)字符串。
toString()方法獲取的是String(傳統(tǒng)字符串),而toLocaleString()方法獲取的是LocaleString(本地環(huán)境字符串)。
如果你開(kāi)發(fā)的腳本在世界范圍都有人使用,那么將對(duì)象轉(zhuǎn)換成字符串時(shí)請(qǐng)使用toString()方法來(lái)完成。
LocaleString()會(huì)根據(jù)你機(jī)器的本地環(huán)境來(lái)返回字符串,它和toString()返回的值在不同的本地環(huán)境下使用的符號(hào)會(huì)有微妙的變化。
所以使用toString()是保險(xiǎn)的,返回唯一值的方法,它不會(huì)因?yàn)楸镜丨h(huán)境的改變而發(fā)生變化。如果是為了返回時(shí)間類(lèi)型的數(shù)據(jù),推薦使用LocaleString()。若是在后臺(tái)處理字符串,請(qǐng)務(wù)必使用toString()。