煙臺(tái)龍口網(wǎng)站建設(shè)百度收錄最新方法
一、具備棧特性的方法
unshift(...items: T[]) : number
將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭,并返回該數(shù)組的新長(zhǎng)度。
shift(): T | undefined
從數(shù)組中刪除第一個(gè)元素,并返回該元素的值。此方法更改數(shù)組的長(zhǎng)度。
二、具備隊(duì)列特性的方法
push(...items: T[]): number;
將一個(gè)或多個(gè)元素添加到數(shù)組的末尾,并返回該數(shù)組的新長(zhǎng)度。
pop(): T | undefined;
方法從數(shù)組中刪除最后一個(gè)元素,并返回該元素的值。此方法會(huì)更改數(shù)組的長(zhǎng)度。
三、具備排序特性的方法
reverse()
將數(shù)組中元素的位置顛倒,并返回該數(shù)組。數(shù)組的第一個(gè)元素會(huì)變成最后一個(gè),數(shù)組的最后一個(gè)元素變成第一個(gè)。該方法會(huì)改變?cè)瓟?shù)組。
sort(compareFn?: (a: number, b: number) => number): this;
對(duì)數(shù)組的元素進(jìn)行排序,并返回?cái)?shù)組。
1、如果沒(méi)有指明 compareFn ,會(huì)按照轉(zhuǎn)換為的字符串的諸個(gè)字符的 Unicode 位點(diǎn)進(jìn)行排序。例如 "Banana" 會(huì)被排列到 "cherry" 之前。涉及到數(shù)字時(shí)要尤為注意:
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1); // [1, 100000, 21, 30, 4]
2、如果指明了 compareFn ,那么數(shù)組會(huì)按照調(diào)用該函數(shù)的返回值排序:
compareFn(a, b) 返回值 | 排序順序 |
> 0 | a 在 b 后 |
< 0 | a 在 b 前 |
=== 0 | 保持 a 和 b 的順序 |
四、數(shù)組截取的方法
slice(start?: number, end?: number): Int8Array;
將 [start,end) 范圍內(nèi)的元素淺拷貝至一個(gè)新數(shù)組中并返回該數(shù)組,原始數(shù)組不會(huì)被改變。
splice(start: number, deleteCount?: number): T[];
通過(guò)刪除、替換現(xiàn)有元素或原地添加新的元素來(lái)修改數(shù)組,并以數(shù)組形式返回被修改的內(nèi)容。此方法會(huì)改變?cè)瓟?shù)組。
五、元素遍歷相關(guān)的方法
every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
判斷數(shù)組內(nèi)的所有元素是否都滿足函數(shù)的執(zhí)行條件。都通過(guò)返回true,否則返回false
some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
判斷數(shù)組內(nèi)是否有元素滿足函數(shù)的執(zhí)行條件。只要有一個(gè)通過(guò)就返回true,否則返回false
map(callbackfn: (value: number, index: number, array: Int8Array) => number, thisArg?: any): Int8Array;
創(chuàng)建一個(gè)新數(shù)組,這個(gè)新數(shù)組由原數(shù)組中的每個(gè)元素都調(diào)用一次提供的函數(shù)后的返回值組成,一般用于數(shù)據(jù)轉(zhuǎn)換,注意map函數(shù)是在遍歷每一項(xiàng)元素時(shí)執(zhí)行回調(diào)函數(shù),而不是調(diào)用者控制遍歷,因此return不能跳出map循環(huán)
forEach(callbackfn: (value: number, index: number, array: Uint8Array) => void, thisArg?: any): void;
使用上基本和map和一樣,區(qū)別在于它沒(méi)有返回值。
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number) => T): T;
遍歷數(shù)組,每循環(huán)一次,將循環(huán)返回值當(dāng)成下一次循環(huán)的初始值參與計(jì)算。
比如計(jì)算所有元素的總和:
const arr = [1,2,3,4,5];
arr.reduce((pre,cur)=>(pre+cur)); // return 15
詳細(xì)使用參考這篇文章
六、元素查找的方法
at(index:number)
返回index索引對(duì)應(yīng)的元素,允許正數(shù)和負(fù)數(shù)。負(fù)整數(shù)從數(shù)組中的最后一個(gè)元素開(kāi)始倒數(shù)。
indexOf(searchElement: T, fromIndex?: number): number;
返回在數(shù)組中可以找到給定元素的第一個(gè)索引,如果不存在,則返回 -1。
lastIndexOf(searchElement: T, fromIndex?: number): number;
返回指定元素在數(shù)組中的最后一個(gè)的索引,如果不存在則返回 -1。從后向前查找。
findIndex(predicate: (value: number, index: number, obj: Int8Array) => boolean, thisArg?: any): number;
返回?cái)?shù)組中滿足提供的函數(shù)條件的第一個(gè)元素的索引。若沒(méi)有找到對(duì)應(yīng)元素則返回 -1。
find(predicate: (value: number, index: number, obj: Uint8Array) => boolean, thisArg?: any): number | undefined;
返回?cái)?shù)組中滿足提供的函數(shù)條件的第一個(gè)元素的值。否則返回 undefined。
七、toString()和toLocalString()的區(qū)別
toString()和toLocalString()都是對(duì)數(shù)組的每個(gè)元素執(zhí)行Object對(duì)應(yīng)的方法并用”,”join出一段字符串返回。一般情況下元素的toString和toLocalString是一樣的,但請(qǐng)注意number和date這倆貨,他們重寫了toLocalString方法。
1、數(shù)字:
const number=123456789;
console.log(number.toString()); //'123456789'
console.log(number.toLocalString()); //'123,456,789'
2、日期:
const date=new Date();
console.log(date.toString()); //'Tue Feb 28 2023 16:54:36 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)'
console.log(date.toLocalString()); //'2023/2/28 16:54:36'