摘要:方法接收一個函數(shù)作為累加器,數(shù)組中的每個值從左到右開始縮減,最終為一個值。為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù)初始值或者上一次回調(diào)函數(shù)的返回值,當(dāng)前元素值,當(dāng)前索引,調(diào)用的數(shù)組。
reduce() 方法接收一個函數(shù)作為累加器(accumulator),數(shù)組中的每個值(從左到右)開始縮減,最終為一個值。
reduce 為數(shù)組中的每一個元素依次執(zhí)行回調(diào)函數(shù),不包括數(shù)組中被刪除或從未被賦值的元素,接受四個參數(shù):初始值(或者上一次回調(diào)函數(shù)的返回值),當(dāng)前元素值,當(dāng)前索引,調(diào)用 reduce 的數(shù)組。
語法:arr.reduce(callback,[initialValue])
previousValue (上一次調(diào)用回調(diào)返回的值,或者是提供的初始值(initialValue))
currentValue (數(shù)組中當(dāng)前被處理的元素)
index (當(dāng)前元素在數(shù)組中的索引)
array (調(diào)用 reduce 的數(shù)組)
今天在看koa的源碼,看到其中用到個only模塊,去看了一下該模塊,整個模塊就一個簡單的返回reduce方法操作的對象:
var only = function(obj, keys){ obj = obj || {}; if ("string" == typeof keys) keys = keys.split(/ +/); return keys.reduce(function(ret, key){ if (null == obj[key]) return ret; ret[key] = obj[key]; return ret; }, {}); };
通過對reduce概念的理解,這個模塊主要是想新建并返回一個obj對象中存在的keys的object對象。
var a = { env : "development", proxy : false, subdomainOffset : 2 } only(a,["env","proxy"]) // {env:"development",proxy : false}
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78321.html
摘要:用來指定按某種順序進(jìn)行排列的函數(shù)。如果省略,元素按照轉(zhuǎn)換為的字符串的各個字符的位點進(jìn)行排序。其中為可選參數(shù),當(dāng)執(zhí)行回調(diào)函數(shù)時用作的值參考對象。數(shù)組中正在處理的元素。在沒有初始值的空數(shù)組上調(diào)用將報錯。 1. Array.prototype.push() 像數(shù)組一樣使用對象: var obj = { length: 0, addElem: function addElem...
摘要:正文和中新增的的數(shù)組迭代方法如下其中,是新增的,其余都是新增的。指數(shù)組后,返回過濾后的新數(shù)組。它的參數(shù)跟方法是一樣的所有數(shù)組成員依次執(zhí)行回調(diào)函數(shù),直到找出第一個返回值為的成員,然后返回該成員。 前言 ES5和ES6中新增了不少東西,對于數(shù)組而言,新增了不少迭代方法,讓我們可以拋棄for循環(huán),更方便的寫JS代碼。 正文 ES5和ES6中新增的的數(shù)組迭代方法如下: forEach map...
摘要:接下來,我們換一種思路,用一個相對較新的來實現(xiàn)方法。從這道題目看出,相比考察死記硬背,這樣的實現(xiàn)更有意義。對數(shù)組的操作我們不能陌生,其中方法更要做到駕輕就熟。最后,我們再看下社區(qū)上著名的和的實現(xiàn)。 有不少剛?cè)胄械耐瑢W(xué)跟我說:JavaScript 很多 API 記不清楚怎么辦?數(shù)組的這方法、那方法總是傻傻分不清楚,該如何是好?操作 DOM 的方式今天記,明天忘,真讓人奔潰! 甚至有的開發(fā)...
摘要:接下來,我們換一種思路,用一個相對較新的來實現(xiàn)方法。從這道題目看出,相比考察死記硬背,這樣的實現(xiàn)更有意義。對數(shù)組的操作我們不能陌生,其中方法更要做到駕輕就熟。最后,我們再看下社區(qū)上著名的和的實現(xiàn)。 有不少剛?cè)胄械耐瑢W(xué)跟我說:JavaScript 很多 API 記不清楚怎么辦?數(shù)組的這方法、那方法總是傻傻分不清楚,該如何是好?操作 DOM 的方式今天記,明天忘,真讓人奔潰! 甚至有的開發(fā)...
摘要:數(shù)組的特別之處在于,當(dāng)使用小于的非負(fù)整數(shù)作為屬性名時數(shù)組會自動維護其屬性值。返回的數(shù)組包含第一個參數(shù)指定的位置和所有到但不含第二個參數(shù)指定的位置之間的所有數(shù)組元素。數(shù)組中只需有一項滿足給定條件則返回。 概念 JavaScript數(shù)組是JavaScript對象的特殊形式。數(shù)組索引實際上和碰巧是整數(shù)的屬性名差不多,使用方括號訪問數(shù)組元素就像用方括號訪問對象的屬性一樣。JavaScript將...
閱讀 1200·2021-09-10 10:51
閱讀 939·2019-08-30 15:53
閱讀 2755·2019-08-30 12:50
閱讀 1004·2019-08-30 11:07
閱讀 2020·2019-08-30 10:50
閱讀 3637·2019-08-29 18:47
閱讀 1340·2019-08-29 18:44
閱讀 1630·2019-08-29 17:01