国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談javascript 歸并方法

2019-11-20 13:20:36
字體:
來源:轉載
供稿:網友

ECMAScript5為數組定義了2個歸并方法:reduce()和reduceRight()。這兩個方法都會迭代數組的隨意項,然后構建一個最終返回的值。reduce()方法從數組的第一項開始,逐個遍歷到數組的最后。reduceRight()方法則剛好相反,它從數組的最后一項開始,向前遍歷到第一項。

這兩個方法都接收兩個參數:一個在每一項上調用的函數和作為歸并基礎的初始值。傳給reduce()和reduceRight()的函數接收4個參數:前一個值,當前值,項的索引和數組對象。這個函數返回的任何值都會作為第一個參數自動傳給下一項。第一次迭代發生在數組的第二項上,因此第一個參數是數組的第一項,第二個參數就是數組的第二項。

例如,我們可以使用reduce()方法來求數組中所有值的總和。

var nums = [1,2,3,4,5];var sum = nums.reduce(function(prev,cur,index,array){ retrun pre + cur;});

上面的代碼中,第一次執行回調函數,prev是1,cur是2。第二次prev是3,cur是3。reduce()方法會重復這個過程,直到把數組中的每一項都訪問一次,最后將返回的結果賦值給sum。

reduceRight()方法的左右類似,只不過是反向執行。例如:

var nums = [1,2,3,4,5];var sum = nums.reduceRight(function(prev,cur,index,array){ retrun pre + cur;});

這個例子中,第一次執行回調函數,prev是5,cur是4。最后求和的結果和reduce()方法相同,都是15。

支持reduce()和reduceRight()的瀏覽器有:IE9+,Firefox3+,Safari4+,Opeera10.5+和Chrome。

補充

ECMAScript5 還新增了2個歸并數組的方法:reduce()和reduceRight()。

 這兩個都會迭代數組的所有項
        reduce():從第一項開始逐個遍歷到最后。
        reduceRight():從數組的最后一項開始,遍歷到數組的第一項。

這兩個方法都接受兩個參數:在每一項上調用的函數(參數為:前一個值,當前值,項的索引,數組對象)

 這個函數返回的任何值斗毆會作為第一個參數自動傳給下一項。第一次迭代發生在數組的第二項上,
         因此第一個參數是數組的第一項,第二個參數是數組的第二項
         和 作為歸并基礎的初始值。
        使用reduce()方法可以執行數組中所有值之和的操作,比如:

    var values = [1, 2, 3, 4, 5];    var sum = values.reduce(function (prev, cur, index, array) {      return prev + cur;    });    alert(sum);    //結果一樣,只是方向相反而已    var sum2=values.reduceRight(function (prev,cur,index,array) {      return prev+cur;    });    alert(sum2);

歸并排序(Merge sort)是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。

歸并(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然后再把有序子序列合并為整體有序序列。

歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合并,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合并成一個有序表,稱為2-路歸并。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 灵山县| 西乌珠穆沁旗| 湄潭县| 莆田市| 临武县| 南投县| 三台县| 鸡西市| 德江县| 贺州市| 平昌县| 临澧县| 定西市| 乌鲁木齐市| 尖扎县| 荃湾区| 香港| 当雄县| 游戏| 华宁县| 崇州市| 开阳县| 昌乐县| 安国市| 县级市| 盘山县| 沂水县| 六盘水市| 越西县| 阿拉尔市| 布拖县| 清水县| 紫云| 京山县| 沁水县| 建始县| 民丰县| 双峰县| 田阳县| 正阳县|