javascript
JavaScript Array常用方法
ECMAScript中的數(shù)組與其他語(yǔ)言最大的不同在于數(shù)組的每一項(xiàng)可以保存任何類型的數(shù)據(jù),而且數(shù)組的大小可以動(dòng)態(tài)調(diào)整。對(duì)于數(shù)組的操作在前端開發(fā)中還是很頻繁的,js本身提供了很多方法供開發(fā)者使用,現(xiàn)在對(duì)數(shù)組的常用方法進(jìn)行一些總結(jié)。
1.創(chuàng)建數(shù)組
-
使用Array構(gòu)造函數(shù),在創(chuàng)建時(shí),可以傳遞數(shù)組的長(zhǎng)度,也可以傳遞數(shù)組中每一項(xiàng)的值;在使用這種方式創(chuàng)建時(shí),可以省略new關(guān)鍵字;
-
對(duì)象字面量;在使用對(duì)象字面量創(chuàng)建數(shù)組時(shí),不會(huì)調(diào)用數(shù)組的構(gòu)造函數(shù);所以instanceof會(huì)返回false;
var colors = new Array()
var colors = new Array(20) // 傳入數(shù)組長(zhǎng)度
var colors = new Array('red', 'blue', 'green') // 傳入數(shù)組元素
2.數(shù)組方法
(1)檢測(cè)數(shù)組
- instanceof:檢測(cè)某個(gè)對(duì)象是不是數(shù)組;value instanceof Array
- isArray:檢測(cè)某個(gè)對(duì)象是不是數(shù)組;Array.isArray(value)
(2)轉(zhuǎn)換方法
-
toString:返回由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)由逗號(hào)分隔的字符串;Array.toString()
-
valueOf:與toString返回相同的值,但返回?cái)?shù)組;Array.valueOf()
-
toLocaleString: 與toString返回相同的值,類型是字符串;Array.toLocaleString();
-
join:返回拼接的字符串,可以接收一個(gè)參數(shù)作為分隔符,默認(rèn)的分隔符是逗號(hào);
var animals = ['dog','cat','tiger'] console.log(animals.join(',') // dog,cat,tiger console.log(animals.join('|') // dog|cat|tiger 復(fù)制代碼 -
tips: 如果數(shù)組中的某一項(xiàng)是null、undefined,那么該值在數(shù)組調(diào)用toString、valueOf、toLocaleString和join方法時(shí),返回空字符串;
(3)棧方法
- push:接收任意數(shù)量的參數(shù),把它們逐個(gè)添加到數(shù)組末尾,并返回修改后的數(shù)組的長(zhǎng)度;
- pop:從數(shù)組末尾刪除最后一項(xiàng),減少數(shù)組的長(zhǎng)度,返回移除的項(xiàng);
(4)隊(duì)列方法
- shift:移除數(shù)組的第一項(xiàng)并返回該項(xiàng),同時(shí)將數(shù)組的長(zhǎng)度減1;
- unshift:在數(shù)組的前端添加任意項(xiàng),并返回新數(shù)組的長(zhǎng)度;
(5)重排序方法
- reverse:反轉(zhuǎn)數(shù)組項(xiàng)的順序;返回經(jīng)過排序過的數(shù)組;
- sort:將數(shù)組中的元素進(jìn)行排序,接收一個(gè)排序函數(shù)作為參數(shù),指明排序的順序;調(diào)用每個(gè)數(shù)組項(xiàng)的toString()方法,得到比較的字符串,返回經(jīng)過排序后的數(shù)組;
(6)操作方法
- concat:創(chuàng)建一個(gè)當(dāng)前數(shù)組的副本,然后將接收到的參數(shù)添加到這個(gè)副本的末尾,最后返回新的數(shù)組。原來的數(shù)組保持不變;
- slice:接收兩個(gè)參數(shù),分別是返回項(xiàng)的開始位置和結(jié)束位置,不包括結(jié)束位置的項(xiàng)。
- splice:向數(shù)組中插入若干項(xiàng),返回一個(gè)數(shù)組,數(shù)組中包含從原始數(shù)組中刪除的項(xiàng),如果沒有刪除則返回一個(gè)空數(shù)組。主要用途包括:
- 刪除:指定兩個(gè)參數(shù),要?jiǎng)h除的起始項(xiàng)以及項(xiàng)數(shù);
- 插入:需要插入至少三個(gè)參數(shù),起始位置,要?jiǎng)h除的項(xiàng)數(shù),以及要插入的元素(可以傳入多個(gè));
- 替換:先刪除任意項(xiàng),再插入任意項(xiàng)。需要指定三個(gè)參數(shù),起始項(xiàng)數(shù),要?jiǎng)h除的項(xiàng)數(shù),以及插入的項(xiàng);插入的項(xiàng)不必與刪除的項(xiàng)數(shù)相等;
(7)位置方法
- indexOf:接收兩個(gè)參數(shù),要查找的元素和查找位置起點(diǎn)的索引,返回查找元素在數(shù)組中的位置索引,沒找到返回-1。indexOf表示從頭開始查找;
- lastIndexOf:與indexOf功能相同,從數(shù)組的末尾開始查找;
- tips:在查找元素進(jìn)行比較時(shí),進(jìn)行的是全等(===)比較;
(8)迭代方法
接收兩個(gè)參數(shù),在每一項(xiàng)上運(yùn)行的函數(shù)和運(yùn)行該函數(shù)的作用域?qū)ο?#xff08;可選)。操作不會(huì)修改數(shù)組本身的值;
- every:對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),如果每一項(xiàng)都返回true,則返回true;
- filter:對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回?cái)?shù)組中返回為true的項(xiàng)組成的數(shù)組;
- forEach:對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),沒有返回值;與for in循環(huán)功能相同;
- map:對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),返回運(yùn)行結(jié)果組成的數(shù)組;
- some:對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),如果任意一項(xiàng)返回true,則返回true;
(9)歸并方法
接收兩個(gè)參數(shù),分別是在每一項(xiàng)上的執(zhí)行的函數(shù)和作為歸并基礎(chǔ)的初始值;
- reduce:迭代數(shù)組中的所有項(xiàng),構(gòu)建一個(gè)最終的返回值。從數(shù)組中的第一項(xiàng)開始,逐個(gè)遍歷到最后;var list = [1, 2, 3, 4, 5]; var sum = list.reduce(function(prev, cur, index, array) {return prev + cur; }); console.log(sum); // 15 復(fù)制代碼
- reduceRight:迭代數(shù)組中的所有項(xiàng),構(gòu)建一個(gè)最終的返回值,從數(shù)組的最后一個(gè)開始,向前遍歷到第一項(xiàng)
- tips:傳遞給歸并方法的函數(shù)接收四個(gè)參數(shù),分別是前一個(gè)值,當(dāng)前值,項(xiàng)的索引和數(shù)組對(duì)象。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng);作為歸并的基礎(chǔ)值可以不傳,不傳默認(rèn)基本值是數(shù)組的第一項(xiàng)或最后一項(xiàng);
總結(jié)
以上是生活随笔為你收集整理的JavaScript Array常用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OSChina 周一乱弹 —— 抱着漂亮
- 下一篇: Vue指令详解