js对象取值的方法(js获取对象的值的方法)
admin
2023-09-21 10:04:16
0

原生Math.max方法

Math.max 方法不能接收数组,可以使用ES6的…将数组打散

const arr = [111, 12, 111, 34, 2, 5, 76];console.log(Math.max(...arr));

当然也可以用apply方法调用

console.log(Math.max.apply(null, arr));

遍历获取最大值

遍历数组,依次比较,保存较大的数,最终得到的就是最大值,这里使用forEach遍历

function max2(arr) { let result = -Infinity; arr.forEach((item) => { if (item > result) { result = item; } }); return result;}console.log(max2(arr));

利用排序获取最大值

将数组使用sort方法排序后,第一个元素或最后一个元素就是最大值,再用shift或者pop方法取出(由升序还是降序决定),值得注意的是这两个方法会修改原数组,可以使用slice方法复制一份数组再执行弹出元素操作

function max3(arr) { return arr.sort((a, b) => a - b).slice().pop();}console.log(max3(arr));

使用filter排除小的值

使用filter函数依次取出<自身的元素,当取不出元素即返回的函数长度===零时,就取得了最大值,至于为什么用递归不用循环,用IIFE不用先声明后使用,嗯,就是单纯的不想

(function greater(arr, idx) { const res = arr.filter(item => item > arr[idx]); if (res.length === 1) { console.log(res[0]); return res[0]; } greater(arr, idx + 1);})(arr, 0);

使用every判断自己是否是最大值

使用every的原理和使用filter的原理类似,即当所有元素都<=本身的时候,本身就是最大值

(function greater(arr, idx) { if (arr.every(item => item <= arr[idx])) { console.log(arr[idx]); return arr[idx]; } greater(arr, idx + 1);})(arr, 0);

使用递归模拟数组方法

和上面两个方法类似,只是内层用了递归和IIFE模拟every

(function outer(arr, i) { let flag = function inner(arr, j) { if (arr[j] <= arr[i]) { return false; } return arr.length < j + 1 ? inner(arr, j + 1) : true; }(arr, 0); if (flag) { console.log(arr[i - 1]); return arr[i - 1]; } outer(arr, i + 1);})(arr, 0);

相关内容

热门资讯

美联邦官员证实执法人员在夏洛特... 15日,美国联邦官员证实,已加强了在北卡罗来纳州夏洛特市针对非法移民的执法力度。当天,联邦执法人员在...
日本前首相:高市早苗应坚持“无... △日本首相高市早苗(资料图)日本前首相、立宪民主党党首野田佳彦15日说,首相高市早苗应当坚持“无核三...
招商局集团有限公司原副总经理李... 招商局集团有限公司原党委委员、副总经理李百安涉嫌严重违纪违法,目前正接受中央纪委国家监委纪律审查和监...
教育部发布留学预警:中国公民谨... 今日,教育部发布留学预警。近段时间以来,日本社会治安不靖,针对中国公民的违法犯罪案件多发,治安形势和...
南部战区组织轰炸机编队位南海进... 南部战区新闻发言人田军里空军大校表示,11月14日,中国人民解放军南部战区组织轰炸机编队位南海进行例...
高市早苗涉台错误言论引发多方批... 日本首相高市早苗日前在国会答辩时公然发表涉台露骨挑衅言论,暗示可能武力介入台海问题,性质影响极其恶劣...
中国海警舰艇编队11月16日在... 11月16日,中国海警1307舰艇编队在我钓鱼岛领海内巡航。这是中国海警依法开展的维权巡航活动。
御寒“神器”电加热衣走红 专家... 随着入冬气温不断降低,一些具有加热保暖功能的电加热衣也逐渐走红。这到底是一种怎样的御寒神器?记者在网...
全国冬小麦播种过八成 各地抢抓... 农业农村部最新农情调度显示,目前,全国冬小麦播种已过八成。其中黄淮海近八成半。分省看,河南近八成,安...
俄称控制一定居点 乌军称打击俄... 当地时间15日,俄罗斯国防部发布战报称,俄军对保障乌克兰国防工业体系运行的能源设施、军用机场、乌国家...
加拿大本拿比市就歧视华裔历史正... 当地时间11月15日,加拿大不列颠哥伦比亚省大温哥华地区本拿比市就历史上针对华裔的歧视进行正式道歉。...
美国加州南部海域疑似偷渡船倾覆... 当地时间15日凌晨,美国加利福尼亚州南部海域发生一起疑似偷渡船倾覆事故。警方说,事故已导致4人死亡、...
乌克兰总统宣布启动国有能源企业... 当地时间11月15日,乌克兰总统泽连斯基通过社交媒体宣布,启动国有能源企业全面改革,同步推进财务审计...
继三大航司后,多家航司同日发布... 14日晚,外交部和中国驻日本使领馆就中国公民前往日本发布郑重提醒。15日,多家航司发出通知,公布了涉...
神舟二十二号飞船发射任务已启动... 神舟二十号乘组已平安返回地球,根据计划安排,后续将择机发射神舟二十二号飞船。据介绍,目前已启动神舟二...
航行警告!黄海中部连续三天24... 据中国海事局网站消息,盐城海事局发布航行警告,11月17日至19日,每日0时到24时,黄海中部部分海...
中国南极考察队成功救援1名俄南... 应俄罗斯方面请求,中国第42次南极考察队“雪鹰601”飞机,于11月14日成功将一名俄罗斯和平站病员...
王济生诗歌 紫竹院菊韵(诗三首... 1.双清秋尽黄花艳冷香朔风中紫竹邀仙子高洁见双清2.七彩碧波渺渺过旧船,紫竹浓处听潺潺。行宫百菊正浓...
儿童电话手表成“社交硬通货”?... 一块原本用于定位和通话的儿童电话手表,如今竟成了中小学生的“社交硬通货”?近日,澎湃新闻记者采访多位...
瑞士宣布美国对其商品关税从39... 当地时间14日,瑞士联邦委员会宣布,美国对瑞士产品征收的关税从目前的39%降至15%。瑞士联邦委员兼...