电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

javascript實現(xiàn)數(shù)組最大值和最小值的6種方法

瀏覽:87日期:2023-09-28 17:40:30

給定一個數(shù)組[1,8,5,4,3,9,2],編寫一個算法,得到數(shù)組的最大值 9,和最小值 1。

1、通過prototype屬性擴展min()函數(shù)和max()函數(shù)

算法1的思路是在自定義min()和max()函數(shù)中,通過循環(huán)由第一個值依次與后面的值作比較,動態(tài)更新最大值和最小值,從而找到結(jié)果。

// 最小值A(chǔ)rray.prototype.min = function () { let min = this[0]; let len = this.length; for (let i = 1; i < len; i++) {if (this[i] < min) min = this[i] } return min}// 最大值A(chǔ)rray.prototype.max = function () { let max = this[0]; let len = this.length; for (let i = 1; i < len; i++) {if (this[i] > max) max = this[i] } return max}// 結(jié)果console.log(arr.min()); // 1console.log(arr.max()); // 92、借助Math對象的min()函數(shù)和max()函數(shù)

算法2的主要思路是通過apply()函數(shù)改變函數(shù)的執(zhí)行體,將數(shù)組作為參數(shù)傳遞給apply()函數(shù)。這樣數(shù)組就可以直接調(diào)用Math對象的min()函數(shù)和max()函數(shù)來獲取返回值。

Array.min = function(array) { return Math.min.apply(Math, array)}// 最大值A(chǔ)rray.max = function (array) { return Math.max.apply(Math, array)}// 結(jié)果console.log(Array.min(arr)); // 1console.log(Array.max(arr)); // 93、算法2的優(yōu)化

在算法2中將min()函數(shù)和max()函數(shù)作為Array類型的靜態(tài)函數(shù),但不支持鏈?zhǔn)秸{(diào)用,我們可以利用對象字面量進行簡化。

// 最小值A(chǔ)rray.prototype.min = function() { return Math.min.apply({}, this)}// 最大值A(chǔ)rray.prototype.max = function () { return Math.max.apply({}, this)}// 結(jié)果console.log(arr.min()); // 1console.log(arr.max()); // 9

與算法2不同的是,在驗證時,因為min()函數(shù)和max()函數(shù)屬于實例方法,所以可以直接通過數(shù)組調(diào)用。上面的算法代碼中apply()函數(shù)傳入的第一個值為{},實際表示當(dāng)前執(zhí)行環(huán)境的全局對象。第二個參數(shù)this指向需要處理的數(shù)組。由于apply函數(shù)的特殊性第一個參數(shù),指定為 null 或 undefined 時會自動替換為指向全局對象,原始值會被包裝。所以我們也可以將第一個參數(shù)設(shè)置為null、undefind。

4、借助Array類型的reduce()函數(shù)

算法4的主要思想是reduce()函數(shù)不設(shè)置initialValue初始值,將數(shù)組的第一個元素直接作為回調(diào)函數(shù)的第一個參數(shù),依次與后面的值進行比較。當(dāng)需要找最大值時,每輪累加器返回當(dāng)前比較中大的值;當(dāng)需要找最小值時,每輪累加器返回當(dāng)前比較中小的值。

// 最小值A(chǔ)rray.prototype.min = function () { return this.reduce((pre, cur) => {return pre < cur ? pre : cur })}// 最大值A(chǔ)rray.prototype.max = function () { return this.reduce((pre, cur) => {return pre > cur ? pre : cur })}// 結(jié)果console.log(arr.min()); // 1console.log(arr.max()); // 95、借助Array類型的sort()函數(shù)

算法5的主要思想時借助數(shù)組的原生sort()函數(shù)對數(shù)組進行排序,排序完成后首尾元素即是數(shù)組的最小、最大元素。默認(rèn)的sort()函數(shù)在排序時時按照字母順序排序的,數(shù)字會被按照字符串處理。例如數(shù)字 18 會被當(dāng)做'18'處理,數(shù)字 6 被當(dāng)'6'來處理,在排序時是按照字符串的每一位進行比較的,因為'1'比'6'要小,所以'11'排序時要比'6'小。對于數(shù)值類型的數(shù)組來說,這顯然不合理。所以我們需要進行自定義排序。

let sortArr = arr.sort((a, b) => a - b)// 最小值sortArr[0]// 最大值sortArr[sortArr.length - 1]// 結(jié)果console.log(sortArr[0]); // 1console.log(sortArr[sortArr.length - 1]); // 96、借助ES6的擴展運算符

// 最小值Math.min(...arr)// 最大值Math.max(...arr)// 結(jié)果console.log(Math.min(...arr)); // 1console.log(Math.max(...arr)); // 9

到此這篇關(guān)于javascript實現(xiàn)數(shù)組最大值和最小值的6種方法的文章就介紹到這了,更多相關(guān)javascript 數(shù)組最大值和最小值內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 低温等离子清洗机(双气路进口)-嘉润万丰| 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 国际学校_国际学校哪个好_国际课程学校-国际学校择校网 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 合肥办公室装修 - 合肥工装公司 - 天思装饰| 成人纸尿裤,成人尿不湿,成人护理垫-山东康舜日用品有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 清水-铝合金-建筑模板厂家-木模板价格-铝模板生产「五棵松」品牌 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 手板_手板模型制作_cnc手板加工厂-东莞天泓| 10吨无线拉力计-2吨拉力计价格-上海佳宜电子科技有限公司 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 山东成考网-山东成人高考网 | 【化妆品备案】进口化妆品备案流程-深圳美尚美化妆品有限公司 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | 健身器材-健身器材厂家专卖-上海七诚健身器材有限公司 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 标策网-专注公司商业知识服务、助力企业发展 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 |