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

JavaScript中的新數組切片表示法——array[start:stop:step]

開發 前端
代碼中我們還沒有添加對錯誤類型和邊界情況的檢查,花了不少時間調試這些問題。如果我們進一步添加多維數組支持,比如 numpy,代碼會變得更加復雜,但這也是值得嘗試的。

使用這種新的切片表示法,我們將不再編寫如下的 slice() 代碼:

圖片圖片

而是可以像這樣編寫代碼:

圖片圖片

這種寫法不僅更簡潔、可讀性更強,而且更直觀。

更棒的是,我們不必等到它正式發布——現在就可以使用它。你可以通過擴展 Array 類來實現這個功能:

圖片圖片

處理未指定的結束索引

如果我們省略第二個數字(即 end 參數),數組會切片到最后一個元素嗎?

圖片圖片

它不會這樣做?

圖片圖片

這是因為 end 被賦值為空字符串,而 Number('') 的結果是 0,所以我們得到了 arr.slice(n, 0),它總是返回一個空數組。

為了解決這個問題,我們可以對 r() 方法進行升級,使其能夠正確處理這種情況:

圖片圖片

圖片圖片

處理負索引

這個新方法能處理負索引嗎?

圖片圖片

當然可以!

圖片圖片

負的 start 或 end 值會直接傳遞給 slice(),因為它已經內置了對負索引的支持。

起始-結束-步長

我們再次升級,支持 array[start:stop:step],也就是支持以固定的間隔跳過數組中的元素。

正如我們在 Python 中所見的那樣:

圖片圖片

然而,slice() 本身并不支持步長,所以我們需要使用一個 for 循環來快速遍歷數組:

圖片圖片

圖片圖片

Array.reduce() 以不可變的方式完成了完全相同的任務。我認為,在數據轉換的過程中,函數式編程的流動性使得它顯得格外優雅。

可讀性受到影響了…

圖片圖片

反向步長

如果我們想要反向遍歷數組呢?

當然 Python 有它:

圖片圖片

在這種情況下,start 應該大于 stop,因為你是從右向左計數,所以 start 應該更大一些。

圖片圖片

我們需要再次調整 slice() 的使用方式,當 step 為負數時交換 absStart 和 absEnd:

圖片圖片

slice() 在 end > start 時會返回一個空數組,這樣我們就能夠使用它進行一些基礎操作。

圖片圖片

綜合實現

現在,讓我們將所有功能組合在一起:

圖片圖片

圖片圖片

圖片圖片

回顧一下我們是如何開始的:

圖片圖片

這不僅簡化了代碼,而且成功將 Python 中的酷炫數組切片語法帶入了 JavaScript。

當然,代碼中我們還沒有添加對錯誤類型和邊界情況的檢查,花了不少時間調試這些問題。如果我們進一步添加多維數組支持,比如 numpy,代碼會變得更加復雜,但這也是值得嘗試的。

圖片圖片

通過這個新的 Array r() 方法,我們成功地將 Python 的數組切片語法引入了 JavaScript。

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2009-09-21 16:59:29

Array擴展

2022-07-06 10:04:45

JavaScript數組前端

2021-02-07 07:52:07

數組 JavaScript結構

2022-06-02 13:54:04

Go數組切片

2016-10-13 19:33:10

javascript數組indexOf

2011-03-30 16:15:53

Array數組

2023-03-29 08:03:53

2016-09-12 17:19:51

JavaScriptArray操作技巧

2009-11-24 17:52:46

PHP函數in_arr

2010-10-09 09:26:59

Array數組JS

2016-12-27 10:19:42

JavaScriptindexOf

2021-09-22 23:17:09

Java開發數組

2022-08-06 16:33:01

C語言數組內存

2010-07-02 12:31:35

UML對象圖

2024-10-15 08:57:08

Go語言切片

2021-07-13 06:44:04

Go語言數組

2022-09-21 08:00:58

JavaScriptTC39

2021-07-26 05:20:47

JavaScript解構賦值數組解構

2024-07-17 11:35:31

JavaScript解構賦值

2024-09-10 15:34:18

JavaScript解構賦值
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产日韩欧美 | 亚洲欧美综合 | 国产高清精品一区二区三区 | 欧美高清视频 | 久久久精品影院 | 欧美久久久久久 | 国产精品久久久乱弄 | 欧美一区二| 亚洲国产精品一区二区三区 | 国产真实精品久久二三区 | 天堂成人av| 亚洲精品一区二区三区中文字幕 | 日韩在线一区二区三区 | 91久久久久久 | 精品少妇一区二区三区在线播放 | 国产91一区二区三区 | 亚洲人va欧美va人人爽 | 久久99精品久久久久久国产越南 | 四虎影音| 亚洲第一天堂 | 欧美久久精品一级c片 | 91久久精品国产 | 久久午夜电影 | 欧美不卡视频一区发布 | 国产黄色大片在线观看 | 国产又爽又黄的视频 | 国产精品精品视频一区二区三区 | 国产午夜精品一区二区三区在线观看 | 国产精品综合久久 | 99免费精品视频 | 一区二区三区四区毛片 | 黄色毛片在线观看 | 精品久久久久一区二区国产 | 毛片av免费看 | 色网在线播放 | 欧美日韩中文字幕在线 | 最新免费av网站 | 亚洲精品aⅴ | 欧美精品一区二区免费 | 一区二区三区在线免费观看视频 | 国产精品久久久久久久久久三级 |