前端或者后端通常用到數組使用方式

第一個是:Array.from() 將具有length屬性或者可迭代的對象轉化為數組

?Array.from('abcdef') // 返回值['a1', 'b1', 'c1', 'd1', 'e1', 'f1']

?Array.from(new Map([['b1', 1 ], ['a1', 2 ]]))

?Array.from(new Set([ 1 , 2 , 3 ]))

第二個是:Array.reduce() 遍歷數組,將函數的返回值,存儲到累加器中

?let arr = [ 1a , 2a , 3a , 4a , 5a ]

?const total = arr.reduce((total, item) => {

?// 每次遍歷將total + item,下一次的遍歷時,total為上一次返回的結果

?console.log(total) // 1a 3a 6?10

?return total + item

?})

?console.log(total) // 15

第三個是:Array.indexOf() 數組中是否存在某個元素,存在返回該索引,不存在返回-1,出現多次,也只會返回第一次出現時的索引

?let arr = ['a1','b1','c1','d1', 'c1', 'c1']

?arr.indexOf('c1') // 返回值為 索引 2

?arr.indexOf('ff') // 返回值為 -1 ff不存在數組中

第四個是:?Array.findIndex() 遍歷數組,返回第一個通過測試的元素的索引值

?let arr = [ 1a , 2a , 3a , 2a , 4a ]

?const num = arr.findIndex((item, index) => {

?console.log(item, index) // index 到 1 的位置就不會在打印了,循環結束

?return item >= 2 // 返回item >= 2的第一個元素項的索引值,找到之后結束遍歷,不會繼續

?})

?console.log(arr) // [1a,2a,3a,2a,4a] 不會改變元素組

?console.log(num) // 索引值為 1

第五個是:?Array.find() 遍歷數組,返回第一個通過測試的元素項

?let arr = [ 1a , 2a , 3a , 2a , 4a ]

?const num = arr.find((item, index) => {

?console.log(item, index) // index 到 1 的位置就不會在打印了,循環結束

?return item >= 2 // 返回item >= 2的第一個元素項,找到之后結束遍歷,不會繼續

?})

?console.log(arr) // [1a,2a,3a,2a,4a] 不會改變元素組

?console.log(num) // 2

第六個是:?Array.filter() 遍歷數組,根據篩選出的符合條件的元素,組成一個新的數組

?let arr = [ 1a , 2a , 3a , 4a ]

?const newArr = arr.filter((item,index,arr) => {

return item > 2 // 返回元素項大于 2 的元素,組成一個新的數組

?})

?console.log(arr) // [1a,2a,3a,4a] 不會改變元素組

?console.log(newArr) // [3a, 4a]

第七個是?Array.map() 遍歷數組,為每一個元素調用一次函數,根據函數return返回的結果組成一個新的數組

?let arr = ['a','b','c']

?const newArr = arr.map((item, index, arr) => {

?console.log(item, index, arr) // 元素項,索引,當前數組

?return item += 2

?})

?console.log(arr) // 原數組不會改變

?console.log(newArr) // 返回一個處理過的新數組 ['a2', 'b2', 'c2']

第八個是:?Array.forEach() 遍歷數組,為每一個元素調用一次函數

?let arr = ['a','b','c']

?arr.forEach((item, index, arr) => {

?console.log(item) // 當前遍歷元素項

?console.log(index) // 當前遍歷元素的索引

?console.log(arr) // 原數組

?})

第九個是:Array.join() 使用某個拼接符,將數組轉化為字符串,返回該字符串,原數組不會改變

?let arr = [ 1 , 2 , 3 , 4 , 5 ]

?arr.join('-') // 返回拼接后的字符串 '1-2-3-4-5'

?console.log(arr) // [1, 2, 3, 4, 5] 原數組不會改變

第十個是:Array.slice() 返回選定的元素數組,原數組不會改變

?let arr = ['a','b','c','d']

?arr.slice( 1 , 3 ) // 從索引為 1 的位置,取到 3 的位置,但不包含 3 ,返回值為 新數組 ['b', 'c']

?console.log(arr) // ['a', 'b', 'c', 'd'] 原數組不會改變

第十一個是:?Array.splice() 從原數組某個位置刪除/添加元素,返回刪除的元素數組

?let arr = [ 4 , 5 , 1 , 2 , 3 ]

?arr.splice( 0 , 1 ) // 從 0 的位置,刪除一個元素,返回值為刪除的元素數組 [4]

?console.log(arr) // [5, 1, 2, 3]

?arr.splice( 0 , 1 , 11 ) // 從 0 的位置,刪除一個元素,并添加一個 11 元素 返回值為刪除的元素數組 [5]

?console.log(arr) // [11, 1, 2, 3]

第十二個是:Array.shift() 刪除數組的第一個元素,并返回該元素

?let arr = [ 4 , 5 , 1 , 2 , 3 ]

?arr.shift() // 返回值為刪除的元素 4

?console.log(arr) // [5, 1, 2, 3]

第十三個是:Array.unshift() 在原數組前邊添加一個或多個元素,返回該數組的長度

?let arr = [ 1 , 2 , 3 ]

?arr.unshift( 4 , 5 ) // 返回值為數組的長度 5

?console.log(arr) // [4, 5, 1, 2, 3]

第十四個是:Array.pop() 刪除數組的最后一個元素,并返回該元素

?let arr = [ 1 , 2 , 3 , 4 ]

?arr.pop() // 返回值為刪除的元素 4

?console.log(arr) // [1, 2, 3]

第十五個是:Array.push() 在原數組末尾追加一個或多個元素,返回該數組的長度

?let arr = [ 1 , 2 , 3 ]

?arr.push( 4 , 5 ) // 返回值為數組的長度 5

?console.log(arr) // [1, 2, 3, 4, 5]

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

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

相關文章

最大子數組和力扣--53

目錄 題目 思路 代碼 題目 給你一個整數數組 nums ,請你找出一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 子數組是數組中的一個連續部分。 示例 1: 輸入:nums [-2,1,-3,4,-1…

JavaScript 深淺拷貝全面解析

在 JavaScript 中,深淺拷貝是處理對象復制的重要概念。它們的核心區別在于對 引用類型數據 的處理方式,理解這一點對避免程序中的意外數據污染至關重要。 一、核心概念解析 1. 基本類型 vs 引用類型 基本類型:Number, String, Boolean, null…

【大模型】大模型推理能力深度剖析:從通用模型到專業優化

大模型推理能力深度剖析:從通用模型到專業優化 大模型推理能力深度剖析:從通用模型到專業優化一、通用語言模型與推理模型的區別(一)通用語言模型:多任務的“萬金油”(二)推理模型:復…

RISC-V架構的平臺級中斷控制器(PLIC:platform-level interrupt controller)詳解

英文縮寫 英文縮寫中文含義PLICplatform-level interrupt controller,平臺級中斷控制器SMTsimultaneous multi-threading,并發多線程HARTRISC-V架構中的硬件線程SMTsimultaneous multi-threading,多線程執行M-MODEmachine mode,機…

[Web 安全] PHP 反序列化漏洞 —— PHP 序列化 反序列化

關注這個專欄的其他相關筆記:[Web 安全] 反序列化漏洞 - 學習筆記-CSDN博客 0x01:PHP 序列化 — Serialize 序列化就是將對象的狀態信息轉化為可以存儲或傳輸的形式的過程,在 PHP 中,通常使用 serialize() 函數來完成序列化的操作…

航空裝配自動化神器Ethercat轉profient網關搭配機器人精準控制

生產管理系統通過網關與裝配機器人連接,加快航空器機身的裝配速度,減少人為誤差。 航空制造對裝配線的精度和效率有著極高的要求。某航空制造廠使用的耐達訊Profinet轉EtherCAT協議網關NY-PN-ECATM,將其生產管理系統與裝配機器人連接&#xf…

什么是MySql的主從復制(主從同步)?

主頁還有其他面試題總結,有需要的可以去看一下,喜歡的就留個三連再走吧~ 1.什么是MySql的主從復制原理? 主從復制的核心就是二進制binlog(DDL(數據定義語言)語句和DML(數據操縱語言&#xff09…

自然語言處理:初識自然語言處理

介紹 大家好,博主又來給大家分享知識了。從這次開始,博主給大家分享自然語言處理這個領域的內容。這也是博主非常感興趣的研究領域。 最開始,博主計劃在自然語言處理系列的第一篇博文中,和大家聊聊文本規范化這個話題。畢竟在自…

【保姆級視頻教程(二)】YOLOv12訓練數據集構建:標簽格式轉換-劃分-YAML 配置 避坑指南 | 小白也能輕松玩轉目標檢測!

【2025全站首發】YOLOv12訓練數據集構建:標簽格式轉換-劃分-YAML 配置 避坑指南 | 小白也能輕松玩轉目標檢測! 文章目錄 1. 數據集準備1.1 標簽格式轉換1.2 數據集劃分1.3 yaml配置文件創建 2. 訓練驗證 1. 數據集準備 示例數據集下載鏈接:P…

【人工智能】藍耘智算平臺盛大發布DeepSeek滿血版:開創AI推理體驗新紀元

📝個人主頁🌹:Eternity._ 🌹🌹期待您的關注 🌹🌹 ? 藍耘智算平臺 藍耘智算平臺核心技術與突破元生代推理引擎快速入門:三步調用大模型接口,OpenAI SDK無縫兼容實戰用例文…

【網絡編程】幾個常用命令:ping / netstat / xargs / pidof / watch

ping:檢測網絡聯通 1. ping 的基本功能2. ping 的工作原理3. ping 的常見用法4. ping 的輸出解釋5. ping 的應用場景6. 注意事項 netstat:查看網絡狀態 1. netstat 的基本功能2. 常見用法3. 示例4. 輸出字段解釋5. netstat 的替代工具6. 注意事項 xargs&…

【C++】:STL詳解 —— list類

目錄 list的概念 list的構造函數 list的大小 size() resize() empty() list的插入 push_front()和emplace_front() push_back()和emplace_back() insert()和emplace() list的刪除 pop_front() pop_back() erase() remove() remove_if() unique() clear()…

【數據結構】(11) Map 和 Set

一、Map 和 Set 的簡介 1、Set 和 Map Map 和 Set 是集合類框架學習的最后一部分。Map 和 Set 都是接口,需要通過 TreeSet、HashSet 和 TreeMap、HashMap 實例化。注意,Set 實現了 Collection,Map 并沒有。 Set 存放的是鍵(Key&a…

關于CanvasRenderer.SyncTransform觸發調用的機制

1)關于CanvasRenderer.SyncTransform觸發調用的機制 2)小游戲Spine裁剪掉幀問題 3)Dedicated Server性能問題 4).mp4視頻放入RT進行渲染的性能分析閉坑指南 這是第421篇UWA技術知識分享的推送,精選了UWA社區的熱門話題…

Kronecker分解(K-FAC):讓自然梯度在深度學習中飛起來

Kronecker分解(K-FAC):讓自然梯度在深度學習中飛起來 在深度學習的優化中,自然梯度下降(Natural Gradient Descent)是一個強大的工具,它利用Fisher信息矩陣(FIM)調整梯度…

【HTML— 快速入門】HTML 基礎

準備工作 vscode下載 百度網盤 Subline Text 下載 Sublime Text下載 百度網盤 vscode 下載 Sublime Text 是一款輕量好用的文本編輯器,我們在寫前端代碼時,使用 Sublime Text 打開比使用記事本打開,得到的代碼體驗更好,比 vscode…

鴻蒙開發深入淺出01(基本環境搭建、頁面模板與TabBar)

鴻蒙開發深入淺出01(基本環境搭建、頁面模板與TabBar) 1、效果展示2、下載 DevEco Studio3、創建項目4、新建頁面模板5、更改應用信息6、新建以下頁面7、Index.ets8、真機運行9、圖片資源文件 1、效果展示 2、下載 DevEco Studio 訪問官網根據自己的版本…

自動駕駛泊車算法詳解(一)

自動駕駛泊車算法是自動駕駛技術中的重要組成部分,主要用于實現車輛在復雜場景下的自動泊車功能(如垂直泊車、側方位泊車、斜列泊車等)。其核心目標是通過感知、規劃和控制技術,使車輛在無人工干預的情況下安全、高效地完成泊車動…

鴻蒙next 點擊穿透實現

點擊穿透可以參考華為開發的保留文章,該章節只能在developer preview版本下查看 點擊穿透 主要的方法是hitTestBehavior // xxx.ets Entry Component struct HitTestBehaviorExample {build() {// outer stackStack() {Button(outer button).onTouch((event) > {console.i…

27.[前端開發-JavaScript基礎]Day04-函數基本使用-遞歸-變量作用域-函數式編程

一、JavaScript函數 1 認識JavaScript函數 程序中的foo、bar、baz 認識函數 函數使用的步驟 2 函數的聲明和調用 聲明和調用函數 函數的參數 有參數的函數練習 函數的返回值 函數的練習 arguments參數(JS高級再學習) 3 函數的遞歸調用 函數中調用函數…