成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 前端
如果你曾經(jīng)想過,“除了 for 循環(huán)和 map() 之外,我不需要任何東西”,聽好了,因?yàn)槲覍⑾蚰惴窒砟鞘嵌嗝吹腻e誤。

如果你曾經(jīng)想過,“除了 for 循環(huán)和 map() 之外,我不需要任何東西”,聽好了,因?yàn)槲覍⑾蚰惴窒砟鞘嵌嗝吹腻e誤。

以下這 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)您知道要搜索的項(xià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)心?因?yà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ù)組,并且您特別需要最后一個實(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() 那樣流行,但它們非常強(qiáng)大。試試看,誰知道呢?你可能會給你的同事留下深刻印象——或者至少在代碼審查中讓他們感到困惑。

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

2011-03-18 09:56:19

JavaScript

2023-12-10 14:19:31

JupyterPython編碼

2011-04-07 11:33:00

HTML 5JavaScript

2020-11-10 07:11:23

Linux內(nèi)核補(bǔ)丁

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-07-31 08:38:36

2012-11-15 09:59:35

HTML5WebHTML5特效

2024-02-04 18:20:53

AI模型代碼

2024-05-16 11:09:40

Python字符串代碼

2024-03-21 14:27:13

JavaScript數(shù)組

2018-06-19 07:49:49

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

2022-01-26 13:00:07

Vue.js UI組件Web

2023-11-18 09:07:59

Go語言技巧

2024-05-31 11:32:32

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产1页 | 免费a网 | 久久久精品网站 | 久久夜视频| 国产精品国产亚洲精品看不卡15 | 久久久久网站 | 日韩高清一区 | 国产美女精品 | 中文一级片 | 成人性视频免费网站 | 久久新 | 99re在线 | 亚洲精品久久久久久久久久久 | 亚洲啪啪| 日韩淫片免费看 | 可以免费看的毛片 | 精品一区二区三区在线视频 | 亚洲精品视频一区 | 精品视频在线免费观看 | 亚洲免费在线视频 | 国产精品福利视频 | 99精品视频在线 | 日韩在线播放视频 | 国产精品一区二区在线 | 天天插天天操 | 欧美九九九 | 97精品超碰一区二区三区 | 欧美视频免费在线 | 一本一道久久a久久精品蜜桃 | 中文字幕乱码一区二区三区 | 91在线网站 | 精品一区在线 | 中文字幕第一页在线 | 亚洲成人免费av | 亚洲成人国产精品 | 国产精品成人国产乱一区 | 久久激情网 | 成人综合视频在线观看 | 久久激情五月丁香伊人 | 无人区国产成人久久三区 | 91久久国产综合久久 |