日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

十個可以手動編寫的 JavaScript 數(shù)組 API

來源: 責(zé)編: 時間:2023-08-05 11:44:30 4924觀看
導(dǎo)讀JavaScript 中有很多API,使用得當(dāng),會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進(jìn)行一次小總結(jié)。現(xiàn)在開始吧。1.forEach()forEach()用于遍歷數(shù)組接收一參數(shù)回調(diào)函數(shù),并在回調(diào)函數(shù)中接收三個參數(shù),分別

JavaScript 中有很多API,使用得當(dāng),會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進(jìn)行一次小總結(jié)。jFE28資訊網(wǎng)——每日最新資訊28at.com

jFE28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在開始吧。jFE28資訊網(wǎng)——每日最新資訊28at.com

1.forEach()

forEach()用于遍歷數(shù)組接收一參數(shù)回調(diào)函數(shù),并在回調(diào)函數(shù)中接收三個參數(shù),分別代表每一項的值、下標(biāo)和數(shù)組本身。jFE28資訊網(wǎng)——每日最新資訊28at.com

為了確保數(shù)組可以訪問我們自己手寫的API,它必須鏈接到數(shù)組的原型。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]//CodeArray.prototype.my_forEach = function (callback) { for (let i = 0; i < this. length; i++) { callback(this[i], i, this) }}//verifyarr.my_forEach((item, index, arr) => { //111 111 if (item. age === 18) { item.age = 17 return } console.log('111');})

2. map()

map()也用于數(shù)組遍歷,與forEach不同的是,它會返回一個新數(shù)組,這個新數(shù)組由回調(diào)函數(shù)map返回值接收。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_map=function(callback){ const res=[] for(let i=0;i{ if(item.age>18){ return item }})console. log(newarr);//[ // undefined, // { name: 'aa', age: 19 }, // undefined, // { name: 'cc', age: 21 }//]

3. filter()

filter()用于過濾滿足條件的元素,并返回一個新數(shù)組。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_filter = function (callback) { const res = [] for (let i = 0; i < this. length; i++) { callback(this[i], i, this) && res. push(this[i]) } return res}//verifylet newarr = arr.my_filter((item, index, arr) => { return item. age > 18})console.log(newarr); [ { name: 'aa', age: 19 }, { name: 'cc', age: 21 } ]

4. reduce()

reduce()用于將數(shù)組中的所有元素按照指定的規(guī)則進(jìn)行合并計算,并返回一個最終值。jFE28資訊網(wǎng)——每日最新資訊28at.com

reduce() 接收兩個參數(shù):回調(diào)函數(shù)、初始值(可選)。jFE28資訊網(wǎng)——每日最新資訊28at.com

回調(diào)函數(shù)中接收有四個參數(shù):初始值或者存放最后一個回調(diào)函數(shù)的返回值、每一項的值、下標(biāo)、數(shù)組本身。jFE28資訊網(wǎng)——每日最新資訊28at.com

如果沒有提供初始值,則從第二項開始,將第一個值作為第一次執(zhí)行的返回值。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_reduce = function (callback,...arg) { let pre,start=0 if(arg.length){ pre=arg[0] } else{ pre=this[0] start=1 } for (let i = start; i < this.length; i++) { pre=callback(pre,this[i], i, this) } return pre}//verifyconst sum = arr.my_reduce((pre, current, index, arr) => { return pre+=current.age},0) console.log(sum); //76

5. fill()

fill() 用于填充數(shù)組的所有元素,它會影響原始數(shù)組,返回原始數(shù)組的修改值。jFE28資訊網(wǎng)——每日最新資訊28at.com

fill() 接收三個參數(shù):填充值、起始位置(默認(rèn)為 0)、結(jié)束位置(默認(rèn)為 this.length-1)。jFE28資訊網(wǎng)——每日最新資訊28at.com

左閉右開灌裝原理jFE28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)使用起始位置和結(jié)束位置時,它們默認(rèn)填充整個數(shù)組。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

Array.prototype.my_fill = function (value,start,end) { if(!start&&start!==0){ start=0 } end=end||this.length for(let i=start;i ]6. includes()

想法:jFE28資訊網(wǎng)——每日最新資訊28at.com

include()用于判斷數(shù)組中是否存在元素,返回值true或falsejFE28資訊網(wǎng)——每日最新資訊28at.com

include() 提供第二個參數(shù)支持指定位置開始查找jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = ['a', 'b', 'c', 'd', 'e']Array.prototype.my_includes = function (item,start) { if(start<0){start+=this.length} for (let i = start; i < this. length; i++) { if(this[i]===item){ return true } } return false}//verifyconst flag = arr.my_includes('c',3) //The element to be searched, from which subscript to start searchingconsole.log(flag); //false

6. join()

join() 用于將數(shù)組中的所有元素連接成指定符號的一個字符串jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = ['a', 'b', 'c']Array.prototype.my_join = function (s = ',') { let str = '' for (let i = 0; i < this. length; i++) { str += `${this[i]}${s}` } return str. slice(0, str. length - 1)}//verifyconst str = arr. my_join(' ')console.log(str); //a b c

7. find()

find()用于返回數(shù)組中第一個滿足條件的元素,找不到元素返回undefined。jFE28資訊網(wǎng)——每日最新資訊28at.com

find()的參數(shù)是一個回調(diào)函數(shù)。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_find = function (callback) { for (let i = 0; i < this.length; i++) { if(callback(this[i], i, this)){ return this[i] } } return undefined}//verifylet j = arr.my_find((item, index, arr) => { return item.age > 19 })console.log(j); //{ name: 'cc', age: 21 }

8. findIndex()

findIndex()用于返回數(shù)組中第一個滿足條件的,索引找不到返回-1jFE28資訊網(wǎng)——每日最新資訊28at.com

findIndex()的參數(shù)是一個回調(diào)函數(shù)。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_findIndex = function (callback) { for (let i = 0; i < this.length; i++) { if(callback(this[i], i, this)){ return i } } return -1}let j = arr.my_findIndex((item, index, arr) => { return item.age > 19})console.log(j); //3

9. some()

元素 some() 用于檢查數(shù)組中指定的條件是否滿足。jFE28資訊網(wǎng)——每日最新資訊28at.com

如果有一個元素滿足條件,則返回 true,并且不會再檢查后面的元素。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_some = function (callback) { for (let i = 0; i < this. length; i++) { if(callback(this[i], i, this)){ return true } } return false}//verifyconst flag = arr.some((item, index, arr) => { return item. age > 20})console.log(flag); //true

10. every()

every() 用于檢查所有元素是否都滿足指定條件。jFE28資訊網(wǎng)——每日最新資訊28at.com

如果有一個條件不滿足,則返回 false,后面的元素不會再執(zhí)行。jFE28資訊網(wǎng)——每日最新資訊28at.com

代碼:jFE28資訊網(wǎng)——每日最新資訊28at.com

const arr = [ { name: 'zt', age: 18 }, { name: 'aa', age: 19 }, { name: 'bb', age: 18 }, { name: 'cc', age: 21 },]Array.prototype.my_every = function (callback) { for (let i = 0; i < this.length; i++) { if(!callback(this[i], i, this)){ return false } } return true}//verifyconst flag = arr.my_every((item, index, arr) => { return item.age > 16})console.log(flag); //true

寫在最后

以上就是我今天想與您分享的10個手動編寫的JS數(shù)組API的知識內(nèi)容,如果對您有幫助的話,請記得點贊我,關(guān)注我,并將這個知識分享給您的朋友,也許能夠幫助到他。jFE28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-76-0.html十個可以手動編寫的 JavaScript 數(shù)組 API

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

下一篇: 線程通訊的三種方法!通俗易懂

標(biāo)簽:
  • 熱門焦點
  • Raft算法:保障分布式系統(tǒng)共識的穩(wěn)健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復(fù)制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統(tǒng)
  • K6:面向開發(fā)人員的現(xiàn)代負(fù)載測試工具

    K6 是一個開源負(fù)載測試工具,可以輕松編寫、運行和分析性能測試。它建立在 Go 和 JavaScript 之上,它被設(shè)計為功能強大、可擴展且易于使用。k6 可用于測試各種應(yīng)用程序,包括 Web
  • SpringBoot中使用Cache提升接口性能詳解

    環(huán)境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應(yīng)用程序提供了透明式添加緩存的支持。和事務(wù)支持一樣,抽象緩存允許一致地使用各
  • 學(xué)習(xí)JavaScript的10個理由...

    作者 | Simplilearn編譯 | 王瑞平當(dāng)你決心學(xué)習(xí)一門語言的時候,很難選擇到底應(yīng)該學(xué)習(xí)哪一門,常用的語言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 使用Webdriver-manager解決瀏覽器與驅(qū)動不匹配所帶來自動化無法執(zhí)行的問題

    1、前言在我們使用 Selenium 進(jìn)行 UI 自動化測試時,常常會因為瀏覽器驅(qū)動與瀏覽器版本不匹配,而導(dǎo)致自動化測試無法執(zhí)行,需要手動去下載對應(yīng)的驅(qū)動版本,并替換原有的驅(qū)動,可能還
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(消息堆積)、消費 三大塊領(lǐng)域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關(guān)代
  • Temu起訴SHEIN,跨境電商戰(zhàn)事升級

    來源 | 伯虎財經(jīng)(bohuFN)作者 | 陳平安日前據(jù)外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein&ldquo;利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據(jù)官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
Top 主站蜘蛛池模板: 高清| 新干县| 尚志市| 越西县| 盐山县| 鄂托克旗| 卢龙县| 天气| 大冶市| 盘山县| 城口县| 天津市| 龙泉市| 谢通门县| 广丰县| 海南省| 阿尔山市| 奉新县| 民勤县| 古交市| 红桥区| 和顺县| 客服| 疏勒县| 苗栗市| 白水县| 昭平县| 马山县| 太谷县| 尼木县| 济源市| 浦东新区| 莫力| 老河口市| 萍乡市| 宽城| 江都市| 甘洛县| 中宁县| 天台县| 宝兴县|