【有價(jià)值】js常用數(shù)據(jù)處理方法

一、數(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í)例

  1. 將類數(shù)組對(duì)象轉(zhuǎn)換為數(shù)組
// 將 DOM 節(jié)點(diǎn)集合轉(zhuǎn)換為數(shù)組
const divs = document.querySelectorAll('div');
const divArray = Array.from(divs);
  1. 將字符串轉(zhuǎn)換為字符數(shù)組
Array.from('hello'); 
// ['h', 'e', 'l', 'l', 'o']
  1. 從 Set 創(chuàng)建數(shù)組
const set = new Set(['a', 'b', 'c']);
Array.from(set); 
// ['a', 'b', 'c']
  1. 從 Map 創(chuàng)建數(shù)組
const map = new Map([[1, 'one'], [2, 'two']]);
Array.from(map); 
// [[1, 'one'], [2, 'two']]
  1. 使用映射函數(shù)
Array.from([1, 2, 3], x => x * 2); 
// [2, 4, 6]

// 等同于
Array.from([1, 2, 3]).map(x => x * 2);
  1. 生成數(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('')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容