簡介
數(shù)組、拆分
根據(jù)條件將數(shù)組分成兩個集合。
// 該源碼來自于 https://30secondsofcode.org const bifurcateBy = (arr, fn) => arr.reduce((acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc), [[], []])代碼分析
這個代碼主要是利用了 Array.prototype.reduce 和 Array.prototype.push,一邊遍歷一邊進行歸集。其中巧妙之處是一個逗號表達式來在對 acc 進行操作后并返回 acc的值。下面舉一個簡單的例子:
let acc = [] let pushed = (acc.push(2), acc) // 輸出 [2] console.log(pushed)使用場景
將及格和不及格成績的同學進行分組,當然也可以用 Array.prototype.filter 直接獲得及格和不及格成績。
const CUT_OFF_SCORES = 60 const students = [ { name: "xiaoer", score: 80 }, { name: "xiaosi", score: 90 }, { name: "menty", score: 50 }, ] const group = bifurcateBy(students, (student) => student.score >= CUT_OFF_SCORES)相似代碼
根據(jù)條件數(shù)組來對原數(shù)組進行分類,例如 bifurcate(["beep", "boop"], [true, false])。
// 該源碼來自于 https://30secondsofcode.org const bifurcate = (arr, filter) => arr.reduce((acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc), [[], []])一起成長
在困惑的城市里總少不了并肩同行的 伙伴 讓我們一起成長。
如果您想讓更多人看到文章可以點個 點贊。
如果您想激勵小二可以到 Github 給個 小星星。
如果您想與小二更多交流添加微信 m353839115。
本文原稿來自 PushMeTop
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102493.html
showImg(https://segmentfault.com/img/remote/1460000018770987?w=900&h=500); 簡介 數(shù)組、every、any 判斷一個數(shù)組中是否都滿足特定的條件,如果滿足則返回 true 否則返回 false。 // 該源碼來自于 https://30secondsofcode.org const all = (arr, fn = Boole...
簡介 數(shù)組、差集、函數(shù) 根據(jù)給出的函數(shù)找出兩個數(shù)組中的差集。 const differenceBy = (a, b, fn) => { const s = new Set(b.map(fn)); return a.filter(el => !s.has(fn(el))); }; 代碼分析 這段代碼使用了ES2015中定義的 Set 對象。Set 對象的值的特點是不含有重復的值,這個特性可以...
showImg(https://segmentfault.com/img/remote/1460000018734296?w=900&h=500); 簡介 可讀性、性能、Spread、Reduce 在 優(yōu)雅三連擊 中有同學提到了 可讀性 這個關鍵詞,就小二個人的觀點 在某個范圍內(nèi)使用比較常用到的小技巧,可以提升一定的可讀性,文中提到的短路運算在初始化變量是提升可讀性的,并且在很多提倡優(yōu)化if 語句...
簡介 數(shù)組、對象、CSV、表格、工具 我們在 每日 30 秒之 arrayToCSV 中一起學習了將數(shù)組數(shù)據(jù)轉化為 csv 表格數(shù)據(jù)并導出,那如果是對象數(shù)組怎么辦呢?小腦袋瓜轉得快的同學肯定會說:使用 Array.prototype.map 把需要導出的字段先遍歷取出,再使用 arrayToCSV 將其導出為 CSV 數(shù)據(jù)表格。 可是你有沒有想過如果一個對象數(shù)組數(shù)據(jù)非常之大時,使用 Array.p...
showImg(https://segmentfault.com/img/remote/1460000018771004?w=900&h=500); 簡介 數(shù)組、CSV、表格、工具 將一個數(shù)組轉化為逗號為分割符的字符串(CSV)即表格數(shù)據(jù)。 // 該源碼來自于 https://30secondsofcode.org const arrayToCSV = (arr, delimiter = ,) =...
閱讀 2321·2021-08-26 14:14
閱讀 2684·2019-08-29 13:07
閱讀 2091·2019-08-26 11:44
閱讀 682·2019-08-26 10:11
閱讀 2419·2019-08-23 15:43
閱讀 3084·2019-08-23 14:17
閱讀 392·2019-08-23 12:36
閱讀 2095·2019-08-22 15:20