国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

30-seconds-code——adapter

dcr309duan / 3071人閱讀

摘要:英文文章來源于給定一個(gè)鍵值和一組參數(shù),但給定一個(gè)上下文時(shí)調(diào)用它們。

英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md

Adapter call

給定一個(gè)鍵值和一組參數(shù),但給定一個(gè)上下文時(shí)調(diào)用它們。

使用閉包調(diào)用存儲(chǔ)的鍵值與存儲(chǔ)的參數(shù)

const call = ( key, ...args ) => context => context[ key ]( ...args );
/*
Promise.resolve( [ 1, 2, 3 ] ).then( call("map", x => 2 * x ) ).then( console.log ) //[ 2, 4, 6 ]
const map = call.bind(null, "map")
Promise.resolve( [ 1, 2, 3 ] ).then( map( x => 2 * x ) ).then( console.log ) //[ 2, 4, 6 ]
*/
collectInto

改變一個(gè)可以接受數(shù)組為參數(shù)的函數(shù)成為可變量函數(shù).

給定一個(gè)函數(shù),它返回一個(gè)把所有傳入的參數(shù)轉(zhuǎn)變?yōu)閿?shù)組的閉包函數(shù).

const collectInto = fn => ( ...args ) => fn( args );
/*
const Pall = collectInto( Promise.all.bind(Promise) )
let p1 = Promise.resolve(1)
let p2 = Promise.resolve(2)
let p3 = new Promise((resolve) => setTimeout(resolve,2000,3))
Pall(p1, p2, p3).then(console.log)
*/
flip

Flip 利用一個(gè)函數(shù)作為參數(shù),然后降低一個(gè)參數(shù)轉(zhuǎn)變?yōu)樽詈笠粋€(gè)參數(shù)

用一個(gè)閉包接受可變參數(shù)的輸入, 在使用出第一個(gè)參數(shù)外的其余參數(shù)前先拼接第一個(gè)參數(shù)使它成為最后一個(gè)參數(shù).

const flip = fn => (...args) => fn(args.pop(), ...args)
/*
let a = {name: "John Smith"}
let b = {}
const mergeFrom = flip(Object.assign)
let mergePerson = mergeFrom.bind(a)
mergePerson(b) // == b
b = {}
Object.assign(b, a) // == b
*/
pipeFunctions

從左到右的執(zhí)行函數(shù)組合.

Array.reduce() 和 spread (...) 操作符來實(shí)現(xiàn)從左向右的執(zhí)行函數(shù)組合. 第一個(gè)函數(shù)可以接受任意個(gè)參數(shù),其余的只能接受一個(gè)參數(shù).

const pipeFunctions = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)));
/*
const add5 = x => x + 5
const multiply = (x, y) => x * y
const multiplyAndAdd5 = pipeFunctions(multiply, add5)
multiplyAndAdd5(5, 2) -> 15
*/
promisify

轉(zhuǎn)化一個(gè)返回 promise 的異步函數(shù).

返回一個(gè)函數(shù),它返回一個(gè)調(diào)用所有原始函數(shù)的 Promise .
...rest 去傳遞輸入的參數(shù).

在 Node 8+ 中, 你可以用 util.promisify

const promisify = func =>
  (...args) =>
    new Promise((resolve, reject) =>
      func(...args, (err, result) =>
        err ? reject(err) : resolve(result))
    );
// const delay = promisify((d, cb) => setTimeout(cb, d))
// delay(2000).then(() => console.log("Hi!")) -> Promise resolves after 2s
spreadOver

用一個(gè)可變參數(shù)的函數(shù)并返回一個(gè)閉包,該閉包可以將輸入的數(shù)組參數(shù)的轉(zhuǎn)變?yōu)閰?shù)序列.

用閉包和spread (...) 操作符去映射一個(gè)函數(shù)的參數(shù)數(shù)組.

const spreadOver = fn => argsArr => fn(...argsArr);
/*
const arrayMax = spreadOver(Math.max)
arrayMax([1,2,3]) // -> 3
arrayMax([1,2,4]) // -> 4
*/

更多關(guān)于30-seconds-code中文翻譯https://github.com/lvzhenbang/article/blob/master/js/30-seconds-code/index.md

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90529.html

相關(guān)文章

  • 30-seconds-code——Object

    摘要:英文文章來源于刪除對(duì)象中除指定鍵值的屬性用遞歸的方法用方法遍歷對(duì)象然后刪除不是在給定數(shù)組中的屬性如果你傳入,它將對(duì)該鍵所對(duì)應(yīng)的對(duì)象進(jìn)行深度遍歷的變形非原著作對(duì)所有的鍵對(duì)應(yīng)的對(duì)象進(jìn)行深度遍歷用方法遍歷對(duì)象然后刪除不是在給定數(shù)組中的屬性如 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/READM...

    lbool 評(píng)論0 收藏0
  • 30-seconds-code——string

    摘要:英文文章來源于計(jì)算一個(gè)字符串中字符的所有排序情況使用遞歸遍歷字符串中的每個(gè)字符計(jì)算剩余字符串的所有順序用區(qū)合并該字符和剩余字符串的每種順序然后用將該字符串的所有順序合并到一個(gè)數(shù)組中當(dāng)字符串的等于或者時(shí),是兩個(gè)基例字符串的首字母大寫用 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README...

    tinysun1234 評(píng)論0 收藏0
  • 30-seconds-code ——utility集合

    摘要:英文文章來源于返回參數(shù)列表中第一個(gè)非和的參數(shù)用實(shí)現(xiàn)返回第一個(gè)非參數(shù)返回一個(gè)用自定義函數(shù)中的函數(shù)是否返回來對(duì)中傳入的參數(shù)列表盡心過濾用去遍歷參數(shù)列表,用給定的函數(shù)的返回值來過濾參數(shù)列表返回給定值的基本類型返回給定值的構(gòu)造函數(shù)名字的小 Utility 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master...

    Jochen 評(píng)論0 收藏0
  • 30-seconds-code——browser

    摘要:顯示所有指定的元素用操作符和清除所有指定元素的屬性。使用了兩個(gè)事件監(jiān)聽器。將指定的數(shù)組元素轉(zhuǎn)換成元素標(biāo)簽,然后將它們插入指定的選擇器元素內(nèi)用和去生成一個(gè)元素標(biāo)簽列表復(fù)制一個(gè)字符串到剪切板。用去執(zhí)行復(fù)制到剪切板。 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md Browser...

    izhuhaodev 評(píng)論0 收藏0
  • 30-seconds-code——array

    摘要:英文文章來源于數(shù)組最大公約數(shù)計(jì)算數(shù)字?jǐn)?shù)組最大公約數(shù)用和運(yùn)算式使用遞歸計(jì)算一個(gè)數(shù)字?jǐn)?shù)組的最大公約數(shù)數(shù)組最小公倍數(shù)求數(shù)字?jǐn)?shù)組的最小公倍數(shù)用和運(yùn)算式使用遞歸計(jì)算一個(gè)數(shù)字?jǐn)?shù)組的最小公倍數(shù)返回一個(gè)數(shù)組中的最大值。 英文文章來源于:https://github.com/Chalarangelo/30-seconds-of-code/blob/master/README.md Array 數(shù)組最大公...

    adie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<