麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

分享JS數組求和與求最大值的方法

2019-11-20 09:15:25
字體:
來源:轉載
供稿:網友

前言

面試遇到一個問題:JS數組求和函數。我第一想到的就是數組循環。然而我覺得面試官問這個問題一定不是想考這個人人皆知的方法。當時機智的我竟然想到了遞歸函數不斷加和數組的項,然而折騰了好久都沒調好方法,事實證明這并不是最優解。最后面試官問我有沒有見過reduce(),真木有哇。所以回來查資料,Array.reduce()是ES5新增的新屬性,相似的還有Array.reduceRight()。

下文來總結一下數組求和的方法。

最粗暴的方法:循環獲取

通過for循環一項項地加和??创a:

Array.prototype.sum = function (){ var result = 0; for(var i = 0; i < this.length; i++) {  result += this[i]; } return result;};[1,4,7,2,10].sum(); // 24

使用reduce方法

利用reduce方法,可以寫一個數組求和的sum方法。

reduce()方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終為一個值。

reduce的語法:

array.reduce(callback[, initialValue]);

callback函數接受4個參數:previousValue(上次調用回調返回的值)、currentValue(當前被處理的元素)、index(索引)以及數組本身(第一次調用 callback的第一個參數),執行數組中每個值的函數。

initialValue參數可選,表示初始值;initialValue參數若指定,則當作最初使用的previous值,如果缺省,則使用數組的第一個元素作為previous初始值,同時current往后排一位。

Array.prototype.sum = function (){ return this.reduce(function (partial, value){  return partial + value; })};[1,4,7,2,10].sum(); // 24

相比第一種方法,使用reduce()方法的效率更高。

這兩種方法的效率比較可以直接在函數運行前后分別調用new Date()獲取即時時間,從而通過時間差比較執行時間。這里就不比較了,因為每個人的執行環境差異較大。測試結果是reduce()方法的執行時間更短。

JS數組求和函數,并求出數組中的最大值

實例代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>武林網_js數組求和和最大值方法_武林網網</title><meta name="keywords" content="站長,網頁特效,網頁特效代碼,js特效,js腳本,腳本,廣告代碼,VeVB.COm,www.companysz.com,武林網網" /><meta name="description" content="www.companysz.com,武林網網,站長必備js特效及廣告代碼。大量高質量js特效,提供高質量廣告代碼下載,盡在武林網網" /></head><body><a href="http://www.companysz.com/">武林網網</a>,站長必備的高質量網頁特效和廣告代碼。VeVB.COm,站長js特效。<hr><script type="text/javascript">//求和Array.prototype.sum = function () { for (var sum = i = 0; i < this.length; i++)sum += parseInt(this[i]);  return sum ;};//求最大值Array.prototype.maxima = function () { for (var i = 0, maxValue = Number.MIN_VALUE; i < this.length; i++)parseInt(this[i]) > maxValue && (maxValue = this[i]); return maxValue;};//應用var arr = [1,21,3,4,22,45,60,7,32];alert(arr.join("+") + "=" + arr.sum()); alert(arr.join("|") + "中, 最大的數是:" + arr.maxima());</script></body></html>

以上就是本文的全部內容,希望對大家使用JavaScript有所幫助哦,如果有疑問的話歡迎留言討論,小編會及時回復大家的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91一区二区在线观看 | 国产999视频在线观看 | 成人精品一区二区 | 男女羞羞视频 | 精品麻豆cm视频在线看 | 粉嫩粉嫩一区二区三区在线播放 | 99亚洲伊人久久精品影院红桃 | 精品一区二区免费 | 精品国产91久久久久 | 日本一级黄色毛片 | 欧美成人精品不卡视频在线观看 | 国产九色在线观看 | 国产精品美女一区二区 | 亚洲aⅴ在线观看 | 姑娘第四集免费看视频 | 国产一区二区三区视频在线 | 欧美成年性h版影视中文字幕 | 在线看一区二区三区 | 国产精品一区二区视频 | av在线免费观看国产 | 久久综合给合久久狠狠狠97色69 | 羞羞视频免费视频欧美 | 欧美日韩亚洲国产 | 成码无人av片在线观看网站 | 欧美亚洲啪啪 | 色99999| 成人黄色短视频在线观看 | 亚洲一级电影在线观看 | 欧美成人免费 | 性aaa | 操操操操网 | 久久国产精品小视频 | 久久午夜国产 | 久久性生活免费视频 | 色婷婷久久一区二区 | h色在线观看 | 亚洲精品成人18久久久久 | 轻点插视频 | 日本成人在线免费 | 伊人午夜视频 | 欧美亚洲国产日韩 |