js數組學習(ES6+)

文章目錄

        • js(ES6+)數組學習
          • 1.Array.prototype.forEach(fn)
          • 2.Array.prototype.map(fn)
          • 3.Array.prototype.filter(fn)
          • 4.Array.prototype.reduce(fn)
          • 5.Array.prototype.some(fn) every
          • 6.Array.prototype.find(fn)
          • 7.Array.prototype.includes(item)

js(ES6+)數組學習

1.Array.prototype.forEach(fn)

遍歷數組,傳一個函數,每次遍歷會運行該函數


const arr = [45, 7, 2, 4, 1, 57, 3]// for (const item of arr) {
//     console.log(item);
// }// arr.forEach(function(item){
//     console.log(item);
// });//遍歷時函數里其實有三個參數,需要的時候,可以把數據下標和數組本身
arr.forEach(function(item,index,arr){console.log(item,index,arr);
});
2.Array.prototype.map(fn)

數組映射,傳入一個函數,映射數組中的每一項,不會改動原數組,然后返回一個新的數組!

const arr = [45, 7, 2, 4, 1, 57, 3]//數組每一項翻倍
const newArr = arr.map(function(item){return item*2;
});
console.log(newArr)//隨意用,比如返回一個對象
const newArr1 = arr.map(function(item){return{n : item,doubleN : item*2};
});console.log(newArr1,'newArr1')
3.Array.prototype.filter(fn)

數組篩選,傳入一個函數,僅保留滿足條件的項。不會改變原數組,然后返回一個新數組!

const arr = [45, 7, 2, 4, 1, 57, 3]
//返回 和原數組一樣的內容
const newArr = arr.filter(function (item){return true;
});//返回新數組是個空數組,false把每一項都排除掉了
const newArr1 = arr.filter(function (item){return false;
});//返回奇數數組
const newArr2 = arr.filter(function (item){return item % 2 !== 0;
});
console.log(newArr2)
4.Array.prototype.reduce(fn)

數組聚合,傳入一個函數,對數組每一項按照該函數的返回聚合。 數組聚合相對復雜一點,但是多用于求和,簡單理解很多項揉成一項就能用reduce。

const arr = [45, 7, 2, 4, 1, 57, 3]const sum = arr.reduce(function(a,b){return a+b;
},0);
console.log(sum,'求和')
/*** 詳細分析:* reduce函數里 有兩個參數,一個function,第二個默認值0。到底是怎么運行的:* reduce一開始在內部開了一個空間,記錄一開始的結果(用result代表)就是第二個參數,為0。* 然后function開始運行,把result為0這個結果給第一項a,我們數組arr第一項 45給b,a始終是* 當前的結果,當前結果是0,45給b,返回a+b=45,result就更新為45,這時候又把result=45 傳給a,* arr第二個元素7給b,返回 a+b=52,result就更新為52,再次傳給a,往復下去。直到b為3,* return a+b,最終結果為119*/
5.Array.prototype.some(fn) every
const arr = [45, 7, 2, 4, 1, 57, 3]
//只要有一個元素滿足條件就返回true,否則false
const result = arr.some(function (item) {return item > 50;
});
console.log(result,'結果')//所有元素都要滿足條件返回true,否則false
const result1 = arr.every(function (item) {return item > 0;
});
console.log(result1,'結果1')
6.Array.prototype.find(fn)

傳入一個函數,找到數組中第一個能通過改函數測試的項
返回滿足條件的元素,但是有兩個元素滿足條件時候,返回的還是第一個元素,怎么解決。用filter就行。

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.find(function(item){return item > 50;
});
console.log(result)
7.Array.prototype.includes(item)

判斷數組中是否存在item,判定規則使用的是Object.is。傳的不是函數了,傳的是元素。//object.is({},{}) object.is(1,1),object.is理解為===

const arr = [45, 7, 2, 4, 1, 57, 3,54]
const result = arr.includes(2)
console.log(result)

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

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

相關文章

kube-prometheus 系列3 使用 blackbox-exporter 進行 icmp 和 http 監控

安裝kube-prometheus 后默認在monitoring namespace中有創建 blackbox-exporter deployment。但默認沒有icmp的module配置,無法執行ping探測。因為即使有icmp module,默認配置也是無法執行ping探測的(這篇文章要解決的就是這個問題&#xff0…

CentOS 7 下 Keepalived + Nginx 實現雙機高可用

CentOS 7 下 Keepalived Nginx 實現雙機高可用 文章目錄 CentOS 7 下 Keepalived Nginx 實現雙機高可用服務器準備服務信息服務架構 服務安裝nginxKeepalived 服務配置nginxKeepalived 啟動服務nginxkeepalived 服務驗證查看 VIP 狀態CURL 命令訪問瀏覽器訪問 高可用驗證停止…

146. LRU 緩存

題目描述 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類: LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中,則返回關鍵字的值,否…

vue+springboot 前后端分離 上傳文件處理后再下載,并且傳遞參數

vue代碼 <template><div><input type"file" ref"fileInput" accept".json"/><el-button click"upload">上傳</el-button></div> </template><script> export default {name: "…

【第二階段】kotlin的lambda學習

匿名函數lambdm表達式 1.兩數相加 fun main() {//匿名函數lambda表達式//兩數相加 等價&#xff1a;val addResult:(Int,Int)->String{a,b->"兩數相加結果&#xff1a;${ab}"}val addResult{a:Int,b:Int->"兩數相加結果${ab}"}println(addResul…

Stable Diffusion WebUI 從零基礎到入門

本文主要介紹Stable Diffusion WebUI的實際操作方法&#xff0c;涵蓋prompt推導、lora模型、vae模型和controlNet應用等內容&#xff0c;并給出了可操作的文生圖、圖生圖實戰示例。適合對Stable Diffusion感興趣&#xff0c;但又對Stable Diffusion WebUI使用感到困惑的同學&am…

CSS變形與動畫(二):perspctive透視效果 與 preserve-3d 3d效果(奧運五環例子)

文章目錄 perspective 3d透視效果preserve-3d 3d嵌套效果例子 奧運五環 backface-visibility 背面效果 perspective 3d透視效果 perspective 指定了觀察者與 z0 平面的距離&#xff0c;使具有三維位置變換的元素產生透視效果。z>0 的三維元素比正常大&#xff0c;而 z<0 …

試崗第一天問題

1、公司的一個項目拉下來 &#xff0c;npm i 不管用顯示 后面百度 使用了一個方法 雖然解決 但是在增加別的依賴不行&#xff0c;后面發現是node版本過高&#xff0c;更換node版本解決。 2、使用插件動態的使數字從0到100&#xff08;vue-animate-number插件&#xff09; 第一…

ChatGPT or BingChat

你相信我們對大模型也存在「迷信權威」嗎&#xff1f; ChatGPT 的 GPT-4 名聲在外&#xff0c;我們就不自覺地更相信它&#xff0c;優先使用它。但我用 ChatALL 比較 AI 大模型們這么久&#xff0c;得到的結論是&#xff1a; ChatGPT GPT-4 在大多數情況下確實是最強&#xf…

插入、希爾、歸并、快速排序(java實現)

目錄 插入排序 希爾排序 歸并排序 快速排序 插入排序 排序原理&#xff1a; 1.把所有元素分為兩組&#xff0c;第一組是有序已經排好的&#xff0c;第二組是亂序未排序。 2.將未排序一組的第一個元素作為插入元素&#xff0c;倒序與有序組比較。 3.在有序組中找到比插入…

Linux 內核內存管理 page_address 函數

文章目錄 一、page_address1.1 page_address1.2 page_to_pfn1.3 PFN_PHYS1.4 __va(x)1.5 總結1.6 page_to_virt 二、使用demo 一、page_address 1.1 page_address 內核用 struct page 結構體來表示系統中的每個物理頁面&#xff0c;該結構體用來跟蹤和管理這些物理頁面的使用…

MySQL面試題一

MySQL 索引使用有哪些注意事項呢&#xff1f; 可以從兩個維度回答這個問題&#xff1a; 索引哪些情況會失效&#xff0c;索引不適合哪些場景 索引哪些情況會失效 查詢條件包含or&#xff0c;會導致索引失效。隱式類型轉換&#xff0c;會導致索引失效&#xff0c; 例如age字…

Idea的基本使用帶案例---詳細易懂

一.idea是什么 有專業人士說&#xff0c;idea是天生適合做微軟&#xff0c;當時我還想肯定是夸大其詞了&#xff0c;但當你用起來的時候確實很爽&#xff0c;&#x1f60a;&#x1f60a; ntelliJ IDEA是一種集成開發環境&#xff08;IDE&#xff09;&#xff0c;由JetBrains開發…

后仿知識總結

基本詞語的概念&#xff1a; &#xff08;1&#xff09;Place&Routing pr&#xff0c;布局布線 sdf基礎概念&#xff1a; 靜態時序分析圣經翻譯計劃——附錄B&#xff1a;SDF&#xff08;上&#xff09; - 知乎 (zhihu.com) 靜態時序分析圣經翻譯計劃——附錄B&#x…

繼承和多態C++

這里寫目錄標題 繼承public、protected、private 修飾類的成員public、protected、private 指定繼承方式改變訪問權限 C繼承時的名字遮蔽問題基類成員函數和派生類成員函數不構成重載C基類和派生類的構造函數構造函數的調用順序基類構造函數調用規則 C基類和派生類的析構函數C多…

MTK Android隱藏NavigationBar

安卓MTK屏蔽NavigationBar, 在SDK中通過搜索關鍵字修改&#xff0c;可適用大部分MTK及安卓版本&#xff0e; 方法介紹 搜索device/mediatek與device/mediateksample下的.xml把config_showNavigationBar值置為false 如下為搜索指令 find device/mediatek -name “*.xml” | xa…

系統架構師---開發方法---敏捷開發

目錄 前言 極限編程 四大價值觀 溝通 簡單 反饋 勇氣 尊重&#xff1a; 十二個最佳實踐 計劃游戲 小型發布 隱喻 簡單設計 測試先行 重構 結對編程 集體代碼所所有制 持續集成 每周工作40小時 現場客戶 編碼標準 前言 2001年2月&#xff0c;在美國的猶他州…

Grafana展示k8s中pod的jvm監控面板/actuator/prometheus

場景 為保障java服務正常運行&#xff0c;對服務的jvm進行監控&#xff0c;通過使用actuator組件監控jvm情況&#xff0c;使用prometheus對數據進行采集&#xff0c;并在Grafana展現。 基于k8s場景 prometheus數據收集 配置service的lable&#xff0c;便于prometheus使用labl…

LVS負載均衡集群

目錄 集群 什么是集群 (含義) 集群的分類 LVS 負載均衡器的集群架構 負載均衡器的群集工作模式 LVS負載均衡器的調度算法 LVS組成作用 組成 作用 LVS群集創建與管理 創建步驟 ipvsadm工具 LVS-NAT部署實戰 1、部署共享存儲 2、配置節點服務器&#xff08;后端服…

JetPack Compose 學習筆記(持續整理中...)

1.為什么要學&#xff1f; 1.命令式和聲明式 UI大戰,個人認為命令式UI自定義程度較高,能更深入到性能,內存優化方面,而申明式UI 是現在主流的設計,比如React,React Native,Flutter,Swift UI等等,現在性能也逐漸在變得更好 2.還有一個原因compose 是KMM 是完整跨平臺的UI基礎 3.…