一、數(shù)組操作
1、map:依次遍歷每一個(gè)元素,返回新數(shù)組,新數(shù)組元素由方法定義的return構(gòu)成
1、filter:創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素,即return為true的數(shù)據(jù)。不更改原始數(shù)據(jù)
1、splice(startIndex, deleteNum, addItem1, addItem2):數(shù)組插入、刪除和替換,直接改變當(dāng)前數(shù)組
2、slice(start, end):返回截取的子數(shù)組,不包含end索引的元素
3、reverse(): 用于顛倒數(shù)組中元素的順序
4、push:添加元素;添加到最后位置
5、unshift:添加元素;添加到起始位置
5、shift:刪除元素;刪除第一個(gè)元素
5、pop:刪除數(shù)組;刪除最后一個(gè)元素
6、concat:合并數(shù)組。arr1.concat(arr2)
7、join:在數(shù)組之間插入字符形成一個(gè)新的字符串,該方法返回的是一個(gè)字符串;與字符串方法split()互逆
8、filter:查找滿足條件的元素并構(gòu)造一個(gè)新數(shù)組返回。filter() 不會(huì)改變?cè)紨?shù)組
9、ES6 find() 方法返回通過測(cè)試函數(shù)的第一個(gè)元素的值。找到返回true,如果沒有值滿足測(cè)試函數(shù),則返回 undefined
9、findIndex()
find()函數(shù)用來查找目標(biāo)元素,找到就返回該元素,找不到返回undefined
findIndex()函數(shù)也是查找目標(biāo)元素,找到就返回元素的位置,找不到就返回-1
[1, 2, 3, 4].find((value, index, arr) => {
})
10、reduce:Array.reduce方法是JavaScript中一個(gè)非常強(qiáng)大的數(shù)組方法,用于對(duì)數(shù)組中的每個(gè)元素執(zhí)行一個(gè)由用戶提供的回調(diào)函數(shù),最終將所有元素匯總為一個(gè)單一的值。
用于:數(shù)組求和,數(shù)組求最大值,數(shù)組去重
array.reduce(callbackFn, initialValue);
callbackFn:這是一個(gè)回調(diào)函數(shù),接收四個(gè)參數(shù):accumulator(累計(jì)器),currentValue(當(dāng)前值),currentIndex(當(dāng)前索引,可選),和array(調(diào)用reduce的數(shù)組,可選)。
initialValue:可選參數(shù),作為第一次調(diào)用callbackFn時(shí)的第一個(gè)參數(shù)的值。如果不提供initialValue,則數(shù)組的第一個(gè)元素將被用作初始值,并且從數(shù)組的第二個(gè)元素開始執(zhí)行回調(diào)函數(shù)。
// 數(shù)組求和
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 輸出: 15
11、every:用于判斷所有元素是否都滿足條件,返回boolean類型值
11、some:用于判斷存在是否滿足條件的至少一個(gè)元素,返回boolean類型值
12、include,查找是否存在某個(gè)元素, 返回布爾類型值
13、Array.from() ,從類數(shù)組對(duì)象或可迭代對(duì)象創(chuàng)建一個(gè)新的數(shù)組實(shí)例
- 將類數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組
// 將 DOM 節(jié)點(diǎn)集合轉(zhuǎn)換為數(shù)組
const divs = document.querySelectorAll('div');
const divArray = Array.from(divs);
- 將字符串轉(zhuǎn)換為字符數(shù)組
Array.from('hello');
// ['h', 'e', 'l', 'l', 'o']
- 從 Set 創(chuàng)建數(shù)組
const set = new Set(['a', 'b', 'c']);
Array.from(set);
// ['a', 'b', 'c']
- 從 Map 創(chuàng)建數(shù)組
const map = new Map([[1, 'one'], [2, 'two']]);
Array.from(map);
// [[1, 'one'], [2, 'two']]
- 使用映射函數(shù)
Array.from([1, 2, 3], x => x * 2);
// [2, 4, 6]
// 等同于
Array.from([1, 2, 3]).map(x => x * 2);
- 生成數(shù)字序列
Array.from({length: 5}, (v, i) => i);
// [0, 1, 2, 3, 4]
// 生成1-5的數(shù)組
Array.from({length: 5}, (v, i) => i + 1);
// [1, 2, 3, 4, 5]
#二、字符串操作
split:把一個(gè)字符串分割成字符串?dāng)?shù)組;如果把空字符串 ("") 用作 separator,那么 stringObject 中的每個(gè)字符之間都會(huì)被分割;不改變?cè)甲址?;與數(shù)組的join互逆;
常用場(chǎng)景
字符倒序:String.split() 執(zhí)行的操作與 Array.join 執(zhí)行的操作是相反的
message.split('').reverse().join('')