日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

只有 2% 的開發者知道的 7 個驚人的 JavaScript 數組方法

admin
2025年1月21日 10:0 本文熱度 799

如果你曾經想過:“我不需要除了for循環和map()之外的任何東西”,聽著,因為我要告訴你你錯得有多離譜。

以下是 7 個被低估的數組方法,可能會讓你大吃一驚——是的,它們用起來出奇地有趣。

1. copyWithin()

想象一下復制一片披薩,但不是得到一片新的,而是笨拙地把它塞回同一個盒子里。

copyWithin()的作用有點像這樣——它從數組中取出一部分并將其復制到同一個數組中的另一個位置。它不會增加長度,所以不會有額外的“卡路里”(或元素)。

const arr = [12345];
arr.copyWithin(03); // [4, 5, 3, 4, 5]

在這里,從索引 3(4, 5)的元素被復制到索引 0 開始,替換了12。你還可以指定一個可選的結束索引來限制被復制的部分。

2. at()with()

這兩個是新出現的很酷的方法。at()首先出現,為我們提供了一種簡潔的訪問元素的方式,特別是使用負索引。然后with()在 2023 年加入,自豪地為修改數組元素提供了不可變的替代方法。

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

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

at()在你需要處理數組末尾時很有用,而with()確保在你進行更新時原始數組保持不變。

3. reduceRight()

每個人都知道reduce()——它就像數組方法中的瑞士軍刀。但是你有沒有希望過可以反過來呢?那就來看看reduceRight(),它從右到左處理數組。

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

在這個例子中,reduceRight()從末尾開始組合元素,得到一個反轉的連接結果。

4. findLast()

向 ES13 中保守得最好的秘密之一問好。findLast()的工作方式就像find(),但它從數組的末尾開始搜索。

這在你知道要搜索的項目更接近尾部時特別有用。

const nums = [1234567];
console.log(nums.findLast(n => n % 2 === 0)); // 6

與從開頭搜索的find()不同,findLast()從末尾開始,使其在特定場景中非常理想,例如查找特定類型值的最后一次出現。

5. toSorted(), toReversed(), toSpliced()

來認識一下sort(), reverse()splice()的不可變“表親”。這些 ES2023 新增的方法讓你在不改變原始數據的情況下操作數組。

為什么你應該關心?因為當你的變量不會在你背后神秘地改變時,調試會容易一百萬倍。

const arr = [31415];

// 不可變排序
console.log(arr.toSorted()); // [1, 1, 3, 4, 5]
console.log(arr); // [3, 1, 4, 1, 5]

// 不可變反轉
console.log(arr.toReversed()); // [5, 1, 4, 1, 3]
console.log(arr); // [3, 1, 4, 1, 5]

這些方法讓你在保持原始數組不變的情況下進行更改,確保代碼更具可預測性和可調試性。

6. lastIndexOf()

indexOf()被低估的“兄弟姐妹”,lastIndexOf()正如你所想——它在數組中查找元素的最后一次出現。你甚至可以指定在哪里停止搜索。

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

// 查找'apple'的最后一次出現
console.log(arr.lastIndexOf('apple')); // 3

// 限制搜索到前 3 個元素
console.log(arr.lastIndexOf('apple'2)); // 0

當你處理可能包含重復元素的數組,并且你特別需要最后一個實例時,這個方法很有幫助。

7. flatMap()

當你可以在一個流暢的操作中把它們結合起來時,為什么要滿足于map()flat()呢?flatMap()轉換你的數組并將結果展平一層。

const arr = [12, [3], 4];

// 在一步中進行映射和展平
console.log(arr.flatMap(x => [x * 2])); // [2, 4, 6, 8]

就像一次提交解決兩個問題——更干凈、更快,也更令人滿意。

最終思考

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

記住,你知道得越多,循環就越少!

快樂編碼!


原文地址:https://medium.com/@arnoldgunter/7-amazing-javascript-array-methods-that-only-2-of-developers-know-simple-and-surprising-64f8f21231e4
作者:Arnold Gunter


該文章在 2025/1/21 10:00:00 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产网曝门亚 | 韩国理伦片一区二区三区在线播 | 午夜视频在线观 | 国产真实自在自线免费精品 | 国内精品自线一区二区三区 | 露脸对白不带套在线播放 | 亚洲人精品午夜射精日韩 | 亚洲精品vs中文字幕白桨 | 亚洲免费在线观看一区二区 | 免费观看在线 | 亚洲人午夜射精精品日韩 | 三级在线国产 | 国产一区三区二区中文在线 | 秋霞手机免费 | 伊人影视在线观看日韩 | 香蕉国产在线 | 欧美视频一区 | 国产精品一区二区中文字 | 欧美日韩精品一区二区在线播放 | 中文字幕免费伦费影视 | 国产人妖自拍 | 亚洲日韩欧美在线一区二区 | 国产精品免费视频观看拍拍 | 国产女女互摸互慰在线观 | 日韩欧美视频一区二区 | 成人a级高清视频在线观看 91免费视频网站 | 亚州精品永久观看视频 | 131美女爱做视频 | 午夜三级a三级三点在线观看 | 香蕉国产线看观看伊 | 精品人伦一区二区三区 | 日本三级手机在线播放线观看 | 精品免费国产一区二区三区四区五 | 欧美日韩性生活视频 | 羞羞影院 | 一区二区日韩 | 高清在线午夜一区二区亚洲 | 最新好剧电影在线观影平台 | 日本精品中文字幕有码 | 息与子猛烈交尾在线播放 | 亚洲狼人影院 |