JavaScript數組(Array)方法 - toReversed、toSorted、toSpliced

在這里插入圖片描述

最近發現幾個數組方法,是一些常規方法的升級版,比較有意思,分享給大家

文章目錄

  • 一、溫故
  • 二、知新
      • `toReversed`
      • `toSorted`
      • `toSpliced`

一、溫故

  • 我們先來回顧幾個比較常用的方法:reversesortsplice
  • 眾所周知,reverse:翻轉數組,sort:數組排序,splice:刪除指定位置的元素并可選的替換成新元素。
  • 他們都有一個共同的特點就是都會改變原數組。
const reverseArr = ["a", "b", "c"];
console.log( reverseArr.reverse() );// 返回值:['c', 'b', 'a']
console.log( reverseArr );          // 原數組:['c', 'b', 'a']const sortArr = [5, 3, 6, 2, 7];
console.log( sortArr.sort() );      // 返回值:[2, 3, 5, 6, 7]
console.log( sortArr );             // 原數組:[2, 3, 5, 6, 7]const spliceArr = [1, 2, 3, 4, 5];
console.log( spliceArr.splice( 2, 2, "a", "b" ) );  // 返回值:[3, 4]
console.log( spliceArr );           // 原數組:[1, 2, 'a', 'b', 5]
  • 如果你在對數組進行翻轉、排序、刪除并替換新元素時,不準備修改原數組。那么只能提前將數組拷貝一份,還需要注意深淺拷貝帶來的影響。
const reverseArr = ["a", "b", "c"];
console.log( [...reverseArr].reverse() );// 返回值:['c', 'b', 'a']
console.log( reverseArr );               // 原數組:['a', 'b', 'c']
  • 此處借助了展開運算符拷貝數組。

二、知新

  • 今天要介紹的這幾個新方法,就完美的解決了上面的問題。

toReversed

  • reverse方法的升級版,返回值為翻轉后的新數組,不改變原數組
const reverseArr = ["a", "b", "c"];
console.log( reverseArr.toReversed() ); // 返回值:['c', 'b', 'a']
console.log( reverseArr );              // 原數組:['a', 'b', 'c']

toSorted

  • sort方法的升級版,返回值為排序之后的新數組,不改變原數組
const sortArr = [5, 3, 6, 2, 7];
console.log( sortArr.toSorted() );  // 返回值:[2, 3, 5, 6, 7]
console.log( sortArr );             // 原數組:[5, 3, 6, 2, 7]

toSpliced

  • splice的升級版,返回值為刪除并替換后的新數組,不改變原數組
    • 因為返回了操作后的新數組,所以無法獲取被刪除的元素
const spliceArr = [1, 2, 3, 4, 5];
console.log( spliceArr.toSpliced( 2, 2, "a", "b" ) );  // 返回值:[1, 2, 'a', 'b', 5]
console.log( spliceArr );           // 原數組:[1, 2, 3, 4, 5]
  • 這三個方法,除了 返回值 和 對原數組的影響 外,其 參數 和 功能 并無差異。
  • 這對于我們需要修改數組并保留原數組的需求來說非常方便:既能減少代碼量,還可以節省變量的創建,使我們的代碼更加簡潔,邏輯更加直觀。
    在這里插入圖片描述

如果你對數組的其他常規方法了解的不多,也可以先閱讀這篇文章【數組方法大全】

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/9846.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/9846.shtml
英文地址,請注明出處:http://en.pswp.cn/web/9846.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

luceda ipkiss教程 69:導出器件或者線路的三維模型

ipkiss 3.12版加入write_obj函數,可以直接輸出器件的三維模型。 如,輸出自定義的mmi的三維模型: 代碼如下: from si_fab import all as pdk from ipkiss3 import all as i3class MMI1x2(i3.PCell):"""MMI with …

kaldi學習參考

HMM模型 https://www.cnblogs.com/baixf-xyz/p/16777438.htmlhttps://www.cnblogs.com/baixf-xyz/p/16777438.htmlGMM-HMM 基于GMM-HMM的語音識別系統https://www.cnblogs.com/baixf-xyz/p/16777439.html https://www.cnblogs.com/baixf-xyz/p/16777426.htmlhttps://www.cnbl…

全棧開發之路——前端篇(6)生命周期和自定義hooks

全棧開發一條龍——前端篇 第一篇:框架確定、ide設置與項目創建 第二篇:介紹項目文件意義、組件結構與導入以及setup的引入。 第三篇:setup語法,設置響應式數據。 第四篇:數據綁定、計算屬性和watch監視 第五篇 : 組件…

碼一點網站

Linux命令查詢網站 https://www.lzltool.com/LinuxCommand/Index 小林 x 圖解計算機基礎 https://xiaolincoding.com/ 代碼隨想錄 https://programmercarl.com/ 可用于爬蟲 https://books.toscrape.com/ 數據結構可視化 https://www.cs.usfca.edu/~galles/visualization/ …

fastText-文本分類

fastText介紹 fastText是一個快速文本分類算法,與基于神經網絡的分類算法相比有兩大優點: 1、fastText在保持高精度的情況下加快了訓練速度和測試速度 2、fastText不需要預訓練好的詞向量,fastText會自己訓練詞向量 3、fastText兩個重要的優化:Hierarchical Softmax、N-gr…

387.字符串中的第一個唯一字符

刷算法題: 第一遍:1.看5分鐘,沒思路看題解 2.通過題解改進自己的解法,并且要寫每行的注釋以及自己的思路。 3.思考自己做到了題解的哪一步,下次怎么才能做對(總結方法) 4.整理到自己的自媒體平臺。 5.再刷重復的類…

YUV中Y顏色模型的采樣

YUV的特點 相對于表示顏色的GUI, YUI將亮度(用Y表示)與色調(用U和V表示)分開來表示。又因為人類視網膜上的視網膜桿細胞要多于視網膜錐細 胞,說得通俗一些,視網膜桿細胞的作用就是識別亮度&…

LabVIEW MEMS電容式壓力傳感器測試系統

LabVIEW MEMS電容式壓力傳感器測試系統 隨著微電子技術的發展,MEMS(微電機系統)技術在各個領域得到了廣泛應用。MEMS電容式壓力傳感器以其高靈敏度、小尺寸、低功耗等優點,在微傳感器領域占據了重要的地位。然而,這些…

Smma-net:一種基于音頻線索的目標說話人提取網絡,具有譜圖匹配和相互關注功能

SMMA-NET: AN AUDIO CLUE-BASED TARGET SPEAKER EXTRACTION NETWORK WITH SPECTROGRAM MATCHING AND MUTUAL ATTENTION 第二章 目標說話人提取之《Smma-net:一種基于音頻線索的目標說話人提取網絡,具有譜圖匹配和相互關注功能》 文章目錄 SMMA-NET: AN AUDIO CLUE-…

程序員的多維智慧:技術修煉、人際交往與投資哲學

程序員不應該只會埋頭敲代碼,要多看看書,多學習... 1.程序員技術 保持嚴謹的作風,實事求是,記錄現象,找準依據,可以做出假設,問題的解釋和結論必須能完整、全面符合現象和各種認知邏輯。 絕不…

【算法入門賽】B. 自助店評分(C++、STL、推薦學習)題解與代碼

比賽地址:https://www.starrycoding.com/contest/8 題目描述 在上一場的入門教育賽中,牢 e e e找到了所有自助店的位置,但是他想發現一些“高分好店”,于是他利用爬蟲技術從“小眾點評APP”中爬取了武漢所有自助店的評分。 評分…

Python 機器學習 基礎 之 構建第一個機器學習應用

Python 機器學習 基礎 之 構建第一個機器學習應用 目錄 Python 機器學習 基礎 之 構建第一個機器學習應用 一、簡單介紹 二、第一個機器學習測試應用介紹:鳶尾花分類 三、第一個機器學習測試應用 :前置環境,知識點介紹 jupyter notebo…

mamba-ssm安裝卡著不動

項目中用到Mamba的小伙伴,causal_conv1d和 mamba-ssm兩個包,但是會卡在Building wheel for mamba-ssm (setup.py) : 為了探究卡在了building的哪一步,加入–verbose進行顯示: pip install mamba-ssm --no-cache-dir -…

Linux 安裝JDK和Idea

安裝JDK 下載安裝包 下載地址: Java Downloads | Oracle (1) 使用xshell 上傳JDK到虛擬機 (2) 移動JDK 包到/opt/environment cd ~ cd /opt sudo mkdir environment # 在 /opt下創建一個environment文件夾 ls# 復制JDK包dao /opt/environment下 cd 下載 ls jd…

openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause

文章目錄 openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause279.1 現象描述279.2 優化說明openGauss學習筆記-279 openGauss性能調優-實際調優案例08-改寫SQL消除in-clause 279.1 現象描述 in-clause/any-clause是常見的SQL語句約束條件,有時in…

Jmeter性能測試(三)

token鑒權處理 1、添加json提取器 2、寫jsonpath表達式在響應Body中提取鑒權token token:變量名,可以直接引用 $…token:token數據在響應中的字段名稱,根據自己情況寫就行 3、將提取出來的token添加到請求頭中 重點&#xff…

postman常用功能超全使用教程

Postman 使用 一、Postman 簡介 Postman是一個接口測試工具,在做接口測試的時候,Postman相當于一個客戶端,它可以模擬用戶發起的各類HTTP請求(如:get/post/delete/put…等等),將請求數據發送至服務端,獲取對應的響應結果。 二、Postman 功能簡介 三、Postman 下載安裝 Post…

ssrf(第二彈)

四,post請求 1.打開環境,提示說發一個HTTP POST請求,ssrf是用php的curl實現的.并且會跟蹤302跳轉。 2.用dirsearch掃一下常見的端口,看到有三個可以訪問的頁面 3.構造偽協議,因為要通過172.0.0.1訪問,我們…

基于OpenCV對胸部CT圖像的預處理

1 . 傳作靈感 胸部CT中所包含的噪聲比較多,基于OpenCV簡單的做一些處理,降低后續模型訓練的難度。 2. 圖像的合成 在語義分割任務中有的時候需要將原圖(imput)和標注數據(groudtruth)合成一幅圖像&#x…

Java——接口的補充

目錄 一:接口的注意事項 1. 接口中不能有方法塊; 2. 接口沒有構造方法: 3.接口是可以多繼承的; 4. 多個接口抽象方法重復 5. 類的父類方法與接口方法重復 二:類與接口 1. 繼承與實現 2. 多個父接口的抽象…