自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

七個令人驚嘆的 JavaScript 數(shù)組方法,簡單的令人驚訝

開發(fā) 前端
如果你曾經(jīng)想過,“除了 for 循環(huán)和 map() 之外,我不需要任何東西”,聽好了,因為我將向你分享那是多么的錯誤。

如果你曾經(jīng)想過,“除了 for 循環(huán)和 map() 之外,我不需要任何東西”,聽好了,因為我將向你分享那是多么的錯誤。

以下這 7 種被低估的數(shù)組方法,它們可能會讓你大吃一驚——是的,它們使用起來非常有趣。

1. copyWithin()

想象一下復(fù)制一片披薩,但你得到的不是新的一片,而是笨拙地將其塞回同一個盒子里。

這就是 copyWithin() 的作用——它獲取數(shù)組的一部分并將其復(fù)制到同一數(shù)組內(nèi)的另一個位置。它不會增加長度,因此,不會產(chǎn)生額外的卡路里(或元素)。

const arr = [1, 2, 3, 4, 5];
arr.copyWithin(0, 3); // [4, 5, 3, 4, 5]

在這里,索引 3(4、5)中的元素被復(fù)制到索引 0 處,替換 1 和 2。您還可以指定可選的結(jié)束索引來限制要復(fù)制的部分。

2. at() 和 with()

這兩個是很酷的新手。at() 首先出現(xiàn),為我們提供了一種訪問元素的簡潔方法,尤其是使用負(fù)索引時。然后 with() 于 2023 年加入,自豪地提供用于修改數(shù)組元素的不可變替代品。

const colors = ['red', 'blue', 'green', 'yellow'];


console.log(colors.at(-1)); // 'yellow'
console.log(colors.with(1, 'purple')); // ['red', 'purple', 'green', 'yellow']

at() 非常適合在需要處理數(shù)組末尾時使用,而 with() 可確保在進(jìn)行更新時原始數(shù)組保持不變。

3. reduceRight()

每個人都知道 reduce() — 它就像數(shù)組方法中的瑞士軍刀。但您是否曾希望反過來操作?輸入 reduceRight(),它從右到左處理數(shù)組。

const arr = ['a', 'b', 'c', 'd'];
const result = arr.reduceRight((acc, curr) => acc + curr); 
console.log(result); // 'dcba'

在此示例中,reduceRight() 從末尾開始組合元素,從而產(chǎn)生反向連接。

4. findLast()

向 ES13 中保密最嚴(yán)的秘密之一問好。findLast() 的工作原理與 find() 相同,但它從數(shù)組末尾開始搜索。

當(dāng)您知道要搜索的項目更接近尾部時,這尤其有用。

const nums = [1, 2, 3, 4, 5, 6, 7];
console.log(nums.findLast(n => n % 2 === 0)); // 6

與從頭開始搜索的 find() 不同,findLast() 從尾部開始,這使其成為特定場景的理想選擇,例如查找特定類型值的最后一次出現(xiàn)。

5. toSorted()、toReversed()、toSpliced()

了解 sort()、reverse() 和 splice() 的不可變表親。這些 ES2023 新增功能可讓您操作數(shù)組而不改變原始數(shù)據(jù)。

你為什么要關(guān)心?因為當(dāng)你的變量不會在你背后神秘地改變時,調(diào)試會容易一百萬倍。

const arr = [3, 1, 4, 1, 5];


// Immutable sorting
console.log(arr.toSorted()); // [1, 1, 3, 4, 5]
console.log(arr); // [3, 1, 4, 1, 5]


// Immutable reversing
console.log(arr.toReversed()); // [5, 1, 4, 1, 3]
console.log(arr); // [3, 1, 4, 1, 5]

這些方法可讓您在保持原始數(shù)組完整的同時進(jìn)行更改,從而確保代碼更可預(yù)測且更易于調(diào)試。

6. lastIndexOf()

lastIndexOf() 是 indexOf() 的被低估的兄弟,其功能正如您所想的那樣 — 它可查找數(shù)組中元素的最后一次出現(xiàn)。您甚至可以指定停止搜索的位置。

const arr = ['apple', 'banana', 'cherry', 'apple'];


// Find the last occurrence of 'apple'
console.log(arr.lastIndexOf('apple')); // 3


// Limit the search to the first 3 elements
console.log(arr.lastIndexOf('apple', 2)); // 0

當(dāng)您處理可能包含重復(fù)元素的數(shù)組,并且您特別需要最后一個實例時,此方法非常有用。

7. flatMap()

為什么要滿足于 map() 和 flat(),而您可以將它們組合成一個流暢的操作?flatMap() 會轉(zhuǎn)換您的數(shù)組并將結(jié)果展平一級。

const arr = [1, 2, [3], 4];


// Mapping and flattening in one step
console.log(arr.flatMap(x => [x * 2])); // [2, 4, 6, 8]

這就像通過一次提交殺死兩個錯誤 — — 更干凈、更快、更令人滿意。

最后的想法

這些數(shù)組方法可能不像 filter() 或 push() 那樣流行,但它們非常強大。試試看,誰知道呢?你可能會給你的同事留下深刻印象——或者至少在代碼審查中讓他們感到困惑。

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2011-03-18 09:56:19

JavaScript

2011-04-07 11:33:00

HTML 5JavaScript

2023-12-10 14:19:31

JupyterPython編碼

2020-11-10 07:11:23

Linux內(nèi)核補丁

2012-03-01 11:32:18

硅谷女性

2020-12-22 15:47:02

Python開發(fā)工具

2021-11-29 07:02:24

Python函數(shù)操作

2024-08-05 08:38:13

2020-02-19 14:47:25

人工智能技術(shù)無人駕駛

2022-03-23 15:11:04

Arch LinuxLinuxCutefish 桌

2023-06-22 19:49:23

2024-03-21 14:27:13

JavaScript數(shù)組

2012-11-15 09:59:35

HTML5WebHTML5特效

2024-07-31 08:38:36

2024-05-16 11:09:40

Python字符串代碼

2024-02-04 18:20:53

AI模型代碼

2018-06-19 07:49:49

物聯(lián)網(wǎng)足球科技世界杯

2022-01-26 13:00:07

Vue.js UI組件Web

2025-02-19 12:00:00

JavaScript代碼數(shù)組方法

2023-11-18 09:07:59

Go語言技巧
點贊
收藏

51CTO技術(shù)棧公眾號