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