1. arr.push() 添加 后面
2. arr.pop() 刪除 后面
3. arr.unshif() 添加 前面
4. arr.shift() 刪除 前面
5. arr.reverse()
6. arr.concat() 拼接兩個(gè)數(shù)組
7. arr.splice()
8. arr.slice()
9. arr.sort() 排序
10. arr.join()
11. arr.toString()
序號(hào) | 方法 | 釋義 | 返回值 | 是否改變?cè)瓟?shù)組 |
---|---|---|---|---|
1 | arr.push() | 數(shù)組的末尾添加一個(gè)或多個(gè)元素 | 把指定的值添加到數(shù)組后的新長(zhǎng)度 | yes |
2 | arr.pop() | 刪除并返回?cái)?shù)組的最后一個(gè)元素 | 數(shù)組的最后一個(gè)元素 | yes(如果數(shù)組已經(jīng)為空滑肉,則 pop() 不改變數(shù)組拟糕,并返回 undefined 值。) |
1/2 | push() 方法和 pop() 方法 | 使用數(shù)組提供的先進(jìn)后出棧的功能询一。 | ||
3 | arr.unshif() | 向數(shù)組的開頭添加一個(gè)或多個(gè)元素 | 返回新數(shù)組的長(zhǎng)度 | yes |
4 | arr.shift() | 把數(shù)組的第一個(gè)元素刪除 | 返回刪除元素的值 | yes |
5 | arr.reverse() | 顛倒數(shù)組中元素的順序 | 該方法會(huì)改變?cè)瓉淼臄?shù)組均唉,而不會(huì)創(chuàng)建新的數(shù)組 | yes |
6 | arr.concat() | 方法用于連接兩個(gè)或多個(gè)數(shù)組 | 被連接數(shù)組的一個(gè)副本 | No |
7 | arr.splice() | 向/從數(shù)組中添加/刪除項(xiàng)目是晨,然后返回被刪除的項(xiàng)目(該方法會(huì)改變?cè)瓟?shù)組)!!! | 刪除項(xiàng)目的新數(shù)組 | yes |
8 | arr.slice() | 從已有的數(shù)組中返回選定的元素 | 返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素舔箭。 | No |
9 | arr.sort() | 對(duì)數(shù)組的元素進(jìn)行排序罩缴。 arrayObject.sort(sortby)。sortby:可選层扶。規(guī)定排序順序箫章。必須是函數(shù)。 | 對(duì)數(shù)組的引用镜会。請(qǐng)注意檬寂,數(shù)組在原數(shù)組上進(jìn)行排序,不生成副本戳表。 | yes |
10 | arr.join() | 把數(shù)組中的所有元素放入一個(gè)字符串桶至。元素是通過指定的分隔符進(jìn)行分隔的。如果省略分隔符匾旭,則使用逗號(hào)作為分隔符镣屹。 | 一個(gè)字符串 | yes |
11 | arr.toString() | arrayObject 的字符串表示 | 沒有參數(shù)的 join() 方法返回的字符串相同 | yes |
8.arr.splice()的擴(kuò)展
arrayObject.splice(index,howmany,item1,…,itemX)
參數(shù) | 描述 |
---|---|
index | 必需。整數(shù)价涝,規(guī)定添加/刪除項(xiàng)目的位置女蜈,使用負(fù)數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。 |
howmany | 必需飒泻。要?jiǎng)h除的項(xiàng)目數(shù)量鞭光。如果設(shè)置為 0,則不會(huì)刪除項(xiàng)目泞遗。 |
item1, …, itemX | 可選惰许。向數(shù)組添加的新項(xiàng)目。 |
10.arr.slice()的擴(kuò)展
arrayObject.slice(start,end)
請(qǐng)注意史辙,該方法并不會(huì)修改數(shù)組汹买,而是返回一個(gè)子數(shù)組。如果想刪除數(shù)組中的一段元素聊倔,應(yīng)該使用方法 Array.splice()晦毙。
提示和注釋
注釋:您可使用負(fù)值從數(shù)組的尾部選取元素。
注釋:如果 end 未被規(guī)定耙蔑,那么 slice() 方法會(huì)選取從 start 到數(shù)組結(jié)尾的所有元素见妒。
注釋:splice() 方法與 slice() 方法的作用是不同的,splice() 方法會(huì)直接對(duì)數(shù)組進(jìn)行修改甸陌。
參數(shù) | 釋義 |
---|---|
start | 必需须揣。規(guī)定從何處開始選取盐股。如果是負(fù)數(shù),那么它規(guī)定從數(shù)組尾部開始算起的位置耻卡。也就是說疯汁,-1 指最后一個(gè)元素,-2 指倒數(shù)第二個(gè)元素卵酪,以此類推幌蚊。 |
end | 可選。規(guī)定從何處結(jié)束選取溃卡。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)溢豆。如果沒有指定該參數(shù),那么切分的數(shù)組包含從 start 到數(shù)組結(jié)束的所有元素塑煎。如果這個(gè)參數(shù)是負(fù)數(shù)沫换,那么它規(guī)定的是從數(shù)組尾部開始算起的元素。 |
【es5新增數(shù)組操作方法】
indexOf最铁、forEach讯赏、map、every冷尉、some漱挎、filter、reduce
1雀哨,Array.indexOf()
查找數(shù)組內(nèi)指定元素的位置磕谅,查到第一個(gè)值時(shí)返回其索引,沒查到返回-1
let arr = [1,2,3,4];
console.log(arr.indexOf(3)); // 2
//.lastIndexOf(element)為倒序查找
//跟indexOf()一樣雾棺,只是查找起始點(diǎn)不同膊夹,indexOf是從第一個(gè)開始查找,
//lastIndexOf()是從最后一個(gè)查找捌浩,如果存在放刨,返回下標(biāo),如果不存在返回-1
2尸饺,Array.foreEach()
跟之前的for()循環(huán)一樣进统,只是forEach更靈活
arr.forEach(function(e,index,arr){
//e 當(dāng)前元素
//index 可選 當(dāng)前元素的索引。
//arr 可選 整個(gè)數(shù)組浪听。
});
3螟碎,Array.map()
map()方法返回一個(gè)被操作后的新數(shù)組,不會(huì)改變?cè)瓟?shù)組
map()一般配合return使用迹栓,如果沒有return那跟forEach一樣
arr.map(function(e,index,arr){
//e 當(dāng)前元素
//index 可選 當(dāng)前元素的索引掉分。
//arr 可選 整個(gè)數(shù)組。
});
三、區(qū)別
1酥郭、map速度比foreach快
2尔崔、map會(huì)返回一個(gè)新數(shù)組,不對(duì)原數(shù)組產(chǎn)生影響,foreach不會(huì)產(chǎn)生新數(shù)組褥民,foreach返回undefined
3、map因?yàn)榉祷財(cái)?shù)組所以可以鏈?zhǔn)讲僮飨绰В琭oreach不能
4, map里可以用return ,而foreach里用return不起作用消返,foreach不能用break,會(huì)直接報(bào)錯(cuò)
4耘拇,Array.some()
判斷數(shù)組內(nèi)是否有指定元素撵颊,如果只要有一個(gè)則返回true,如果一個(gè)都沒有則返回false
arr.some(function(element,index,array){
//element 當(dāng)前元素
//index 可選 當(dāng)前元素的索引惫叛。
//array 可選 整個(gè)數(shù)組倡勇。
});
5,Array.filter(callback)
let b = a.filter(item => item.name === 'kele');
console.log(b) //[{name: 'kele', title: '可口可樂'},{name: 'kele', title: '芬達(dá)'}]
//Array.filter()讓我們擺脫了for循環(huán)嘉涌,代碼看起來更加的清爽妻熊!
6,Array.reduce()
遍歷數(shù)組仑最,調(diào)用回調(diào)函數(shù)扔役,將數(shù)組元素合成一個(gè)值返回結(jié)果,其中value為設(shè)定的初始值(可選)
arr.reduce(function(v1, v2), value)
【es6新增數(shù)組操作方法】
1警医,Array.find(callback)
這個(gè)方法是返回?cái)?shù)組中符合條件的第一個(gè)元素亿胸,否則就返回undefined
let a = [1,2,3,4,5];
let b = a.find(item => item > 2);
console.log(b) // 3
傳入一個(gè)回調(diào)函數(shù),找到數(shù)組中符合搜索規(guī)則的第一個(gè)元素预皇,返回它并終止搜索
const arr = [1, "2", 3, 3, "2"]
console.log(arr.find(item => typeof item === "number")) // 1
2侈玄,Array.findIndex(callback)
這個(gè)方法是返回?cái)?shù)組中符合條件的第一個(gè)元素的索引值,否則就返回-1
let a = [1,2,3,4,5];
let b = a.findIndex(item => item > 2);
console.log(b) // 2 符合條件的為元素3 它的索引為2
找到數(shù)組中符合規(guī)則的第一個(gè)元素吟温,返回它的下標(biāo)
const arr = [1, "2", 3, 3, "2"]
console.log(arr.findIndex(item => typeof item === "number")) // 0
3序仙,Array.includes(item, finIndex)
includes(),判斷數(shù)組是否存在有指定元素溯街,參數(shù):查找的值(必填)诱桂、起始位置,
可以替換 ES5 時(shí)代的 indexOf 判斷方式呈昔。indexOf 判斷元素是否為 NaN挥等,會(huì)判斷錯(cuò)誤。
var a = [1, 2, 3];
let bv = a.includes(2); // true
let cv = a.includes(4); // false
4堤尾,...擴(kuò)展運(yùn)算符
可以很方便的幫我們實(shí)現(xiàn)合并兩個(gè)數(shù)組
let a = [1,2,3];
let b = [4,5,6];
let c = [...a,...b];
console.log(c) // [1,2,3,4,5,6];